ARM处理器上的BP寄存器(帧指针)相当于什么?

Che*_*han 6 assembly arm calling-convention

在intel平台上,BP用于指向堆栈帧的开头并访问参数[bp+0x??]和局部变量[bp-0x??].

ARM中使用哪个寄存器?或者,仅基于SP的寻址?

[我没有自行编译和反汇编的基础设施.参考AAPCS对我没有帮助]

Pav*_*ath 7

您正在寻找的是帧指针.通常,R7在THUMB模式下R11充当帧指针,在ARM模式下充当帧指针.但是,如果愿意的话,操作系统可以自行决定改变这一惯例.

在这里阅读

  • 请注意,这是一个ABI问题,而不是处理器问题.(处理器不关心您使用的寄存器.)不同的操作系统可以采用不同的方式. (4认同)
  • ...如果你有一个堆栈指针寄存器,现代编译器并不真正需要帧指针(FP); 他们知道堆栈的布局,因此可以从SP索引以获取他们可能需要从FP访问的任何内容.因此FP是可选的,具体取决于您的编译器. (2认同)