Question Description Consider the following C function: long func(long x, long y, long z) { long ti = x + 3; long t2 - 2 + ti; long t3 - y + 5; long t4 = y = 33; long t5 - t3 + 14; long rval t2 + t5; return rval; } Show that the assembly code below is a correct translation of this program, by (a) giving an expres- sion for the value func() returns, and (b) filling in the table below the assembly code, showing the contents of each register in terms of x, y and z after each of the first six instructions is executed. The first row shows register contents before the first instruction. Remember that the sequence of assembly instructions may not correspond exactly to the C code, as the compiler may rearrange things to minimize the number of instructions and registers
Question Description
Consider the following C function: long func(long x, long y, long z)
{ long ti = x + 3;
long t2 - 2 + ti;
long t3 - y + 5;
long t4 = y = 33;
long t5 - t3 + 14;
long rval t2 + t5;
return rval;
} Show that the assembly code below is a correct translation of this program, by (a) giving an expres- sion for the value func() returns, and (b) filling in the table below the assembly code, showing the contents of each register in terms of x, y and z after each of the first six instructions is executed. The first row shows register contents before the first instruction. Remember that the sequence of assembly instructions may not correspond exactly to the C code, as the compiler may rearrange things to minimize the number of instructions and registers
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 2 images