如下C程序,被编译成LC-3机器语言,且执行前的加载地址为x3000。如果不算跳转至I/O库函数的JSR指令在内,该目标代码中包含3条JSR指令(分别跳入函数f、g和h)。假设,3条JSR指令的地址分别是x3102、x3301和x3304。再假设用户输入为“4、5、6”。试画出当程序从函数f返回时,运行时栈的快照(假设栈的基地址是xEFFF)。
#include<stdio.h>
int g(int arg);
int h(int arg1,int arg2);
int main()
{
int a,b,c;
printf("Type three numbers:");
scanf("%d %d %d",&a,&b,&c);
printf("%d",f(a,b,c));
}
int f(int x,int y,int z)
{
int x1;
x1=g(x);
return h(y,z)*x1;
}
int g(int arg)
{
return arg*arg;
}
int h(int arg1,int arg2)
{
returnn arg1/arg2;
} 