我已经看到了在同一行中推送/弹出多个寄存器的注释,例如:
push {fp, lr}
Run Code Online (Sandbox Code Playgroud)
我找不到谁先被推 - fp或lr?
另一个问题 - SP是指向堆栈中的最后一个占用地址还是第一个空闲地址?
谢谢!
来自 ARM:
寄存器按顺序存储,从编号最低的寄存器到最低内存地址 (start_address),到编号最高的寄存器到最高内存地址 (end_address)
在 ARM 上,堆栈指针通常指向堆栈上最后占用的地址。例如,在设置初始堆栈指针时,通常使用超出堆栈末尾的地址进行初始化。
PUSH只是STMDB用作sp基址寄存器的同义词。表示DB“先递减”寻址模式。
| 归档时间: |
|
| 查看次数: |
6497 次 |
| 最近记录: |