The following code runs on a 32-bit x86 based Linux workstationj….
Question Answered step-by-step The following code runs on a 32-bit x86 based Linux workstationj…. The following code runs on a 32-bit x86 based Linux workstationj. The stack grow downwards, and the C compiler allocates four bytes for the saved frame pointer register in the star of the stack frame(activation record) of a function. You can assume that no extra space is allocated for saved registers and no alignment/padding bytes are added to the activation record.Image transcription text1: struct bar { unsigned int a; 2: unsigned int b; 3: int c; 4: union foobar { struct bar arr [20] ; ARG 3 (data) 5: charbuf [160] ; }; ARG 2 (p) 6: int func (int i, char* p, int data) { ARG 1 () 7: union foobar x; 8: if (((i


