LDRD 指令帮助

逆向工程 艾达 拆卸 手臂
2021-06-12 10:42:59

根据文档,LDRD 指令的工作原理如下

LDRD    R8, R9, [R3, #0x20];  load r8 from a word 32 bytes above the address in R3, and load r9 from  a word 36 bytes above the address in R3

我理解第一部分,R8 从 R3 上方 32 个字节(0x20)的字加载。它的第二部分我不明白。为什么是 36 字节而不是 32 字节?

1个回答

请参阅实际使用说明书

从 A4-50 页:

LDRD(加载寄存器双字)从内存的两个连续字加载一对 ARM 寄存器。这对寄存器被限制为偶数寄存器和紧随其后的奇数寄存器(例如,R10 和 R11)。

tl/dr: 36 是 32 + 4(它加载到概念词)基本上它说在偏移 0x20 到 r3 处,为 r8 和 r9 得到两个词。