问题描述
我是 linux GDB 的新手,我有一个关于 Aarch64 程序集的问题:
在我的汇编程序转储中,有以下几行:
0x0000005555555788 <+36>: str w0,[sp,#24]
0x000000555555578c <+40>: ldr w1,#24]
我知道LDR和STR是什么意思,w0,w1代表寄存器,
但我想知道 [sp,#24]
部分。 sp
和 #24
是什么意思?
解决方法
str w0,[sp,#24]
表示“将 w0
存储在地址 sp+24
”。
ldr w1,#24]
表示“从地址 w1
加载 sp+24
”。
这些都使用 Architecture Reference Manual 的 C1.3.3 节中解释的“基数加偏移量”语法。