Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 需要显示堆栈指针在圆弧部件中的位置_Assembly_Architecture_Stack - Fatal编程技术网

Assembly 需要显示堆栈指针在圆弧部件中的位置

Assembly 需要显示堆栈指针在圆弧部件中的位置,assembly,architecture,stack,Assembly,Architecture,Stack,这是一个ARC程序,它调用子例程foo,向它传递三个参数,a,b,和c。子程序有两个局部变量,m和n。我试图理解并显示堆栈指针的位置,以及下面所示程序中基于堆栈的调用约定的相关堆栈元素的内容。请注意,子例程foo不返回任何内容 就在执行labelx调用之前 当foo的堆栈帧完成时 在标签z处执行ld之前(即,当调用例程恢复时) !推送参数a、b和c 打电话给福 z:ld%r1,%r2 . . . 福:!子程序从这里开始 . . y:jmpl%r15+4,%r0 任何帮助都将不胜感激 检查,第4.

这是一个ARC程序,它调用子例程foo,向它传递三个参数,
a
b
,和
c
。子程序有两个局部变量,
m
n
。我试图理解并显示堆栈指针的位置,以及下面所示程序中基于堆栈的调用约定的相关堆栈元素的内容。请注意,子例程foo不返回任何内容

  • 就在执行label
    x
    调用之前
  • 当foo的堆栈帧完成时
  • 在标签z处执行ld之前(即,当调用例程恢复时)

    !推送参数a、b和c
    打电话给福
    z:ld%r1,%r2
    .
    .
    .
    福:!子程序从这里开始
    .
    .
    y:jmpl%r15+4,%r0

  • 任何帮助都将不胜感激

    检查,第4.6章子程序链接和堆栈 第138页上的“第三个调用约定使用堆栈”

    请注意,在调用中,堆栈不会自动使用。你必须按回车键 子例程代码中的地址。这在RISC架构中有些常见