Heres some lowquality code given to me void foo int x int a
Here\'s some \"low-quality code given to me:
void foo (int x) int a [3]; char buf [4] a 11 gets (buf); print f (\"a 0 0x x, a [1] Oxsx, buf s n\", a [01, a C1), buf) In a program containing this code, procedure foo has the following disassembled form: LCO: string \"a [0] 0x x, a [1] 0x x, buf s n\" foo push %rbx subg $16, srsp Gedi, sebx movl &rsp; %rdi nova call gets &rsp; orCX nova movl Sebx, oedx movl $-2525 79085 se si movl LCO oedi movl 0, eaX printf call addq 16 \"orSp Srbx popq ret For the following questions, recall that: gets is a standard C library routine. x86-64 machines are little-endian. C strings are null-terminated (i.e., terminated by a character with value 0x00). Characters \'0\' through \'9\' have ASCII codes 0x30 through 0x39.Solution
Answer A:
Answer B-
0xF0F1F2F3
x
01
Answer C:
Using pointers array can be allocated on the stack. Answer will not change but complexity of execution will change.
| Program Value | Decimal Offset |
| a | -12 Y |
| a[2] | -4 Y |
| x | +8 N |
| buf | -16 Y |
| buf[3] | -13 Y |
| Saved value of register %rbx | -20 N |
