Question: An ARC program calls the subroutine foo, passing it three arguments, a, b and c. The subroutine has two local variables, m and n. Show


An ARC program calls the subroutine foo, passing it three arguments, a, b and c. The subroutine has two local variables, m and n. Show the position of the stack pointer and the contents of the relevant stack elements for a stack-based calling convention at the points in the program shown below. Note that subroutine foo does not return anything. a. Just before executing the call at label x b. When the stack frame for foo is completed C. Just before executing the ld at label z (i.e. when the calling routine resumes) ! Push the arguments a, b and a x : call foo z : ld fri, fr2 foo: ! subroutine starts here Y: jmpl $r15 + 4, &r0 An ARC program calls the subroutine foo, passing it three arguments, a, b and c. The subroutine has two local variables, m and n. Show the position of the stack pointer and the contents of the relevant stack elements for a stack-based calling convention at the points in the program shown below. Note that subroutine foo does not return anything. a. Just before executing the call at label x b. When the stack frame for foo is completed C. Just before executing the ld at label z (i.e. when the calling routine resumes) ! Push the arguments a, b and a x : call foo z : ld fri, fr2 foo: ! subroutine starts here Y: jmpl $r15 + 4, &r0
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
