【问题标题】:Need show the position of the stack pointer in ARC Assembly需要在 ARC Assembly 中显示堆栈指针的位置
【发布时间】:2014-10-21 20:35:06
【问题描述】:

这是一个调用子例程 foo 的 ARC 程序,向其传递三个参数,abc。该子程序有两个局部变量mn。我试图在下面显示的程序中的点处了解并显示堆栈指针的位置以及基于堆栈的调用约定的相关堆栈元素的内容。请注意,子例程 foo 不返回任何内容。

  1. 就在标签x执行调用之前;
  2. 当 foo 的堆栈帧完成时;
  3. 就在标签 z 处执行 ld 之前(即,当调用例程恢复时)。

    ! Push the arguments a, b, and c x: call foo z: ld %r1, %r2 . . . foo: ! Subroutine starts here . . y: jmpl %r15 + 4, %r0

任何帮助都将不胜感激!

【问题讨论】:

    标签: assembly architecture stack


    【解决方案1】:

    检查here,第 4.6 章子程序链接和堆栈 来自“第三种调用约定使用堆栈”的第 138 页。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2018-07-03
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 2015-08-05
      相关资源
      最近更新 更多