i am wondering if you can help me with this question as a am a beginner in C language and having great difficulty. <br>a programmer has written 2 statements as part of aC program.<br>ptr = &a;<br>a = *ptr + 1;<br>the variable a is a 16-bit integer and the variable ptr has been declared as a pointer to an integer. A C compiler has produced the following machine code instructions from these 2 statements:<br>;ptr = &a;<br> load immediate A 0010<br> store direct A 0012<br>;a = *ptr + 1;<br> load direct A 0012<br> copy register A to IX<br> load indexed A 0000<br> add immediate A 0001<br> store direct A 0010<br> <br>the data sheet for the 16-bit microprocessor which is to execute this program contains the following instruction execution timing information:<br>load/add immediate instructions - 2 processor cycles, <br>load/store direct instructions - 2 processor cycles,<br>load/store indexed instructions - 3 processor cycles,<br>copy/increment register instructions - 1 processor cycle,<br> <br>1 processor cycle = 10 proceesor clock periods.<br> <br>(a) how many words of memory does the above section of program occupy in memory?<br>assuming the processor clock frequency is 10 MHz how long does the section of the program take to execute?<br>which machine code instruction is redundant?<br> <br>(b) assuming the variable ptr is not required elsewhere in the program, explain why the 2 C statements above are equivalent to the single statement:<br>a = a + 1;<br> <br>(c) the 3 machine code instructions required to implement the C statement given in the part above are:<br>load direct A 0010<br>add immediate A 0001<br>store direct A 0010<br> <br>write down the equivalent assembly language versions of the 3 machine instructions for:<br>the 8086 microprocessor;<br>the 8051 microcontroller (assume here that all variables and instructions are 8-bit quantities).<br> <br>(d) the machine code program in the part above can be further reduced in memory requirements and increased the execution speed by the use of an increment the accumulator instruction instead of the add instruction. for this more efficient version of the program section and using the data given in part (a):<br>how many words of memory does it require;<br>what is its execution time?<br>how should the C programmer change the C statement in part (b) to ensure the compiler is likely to use the processor's increment instruction instead of the add instruction?