对ARM指令感到困惑

时间:2011-11-22 19:03:29

标签: arm

我无法弄清楚这条ARM指令的作用:

strd.w          r0, r1, [r2]

我知道这是一个存储指令,可以存储*r2的内容,但我不完全确定是什么。为什么有两个源寄存器(r0r1)以及d.w后缀是什么意思?

1 个答案:

答案 0 :(得分:9)

此函数将两个32位寄存器的64位内容存储到存储器中。从r2中保存的地址开始存储8字节的块。前四个字节来自r0,后两个字节来自r1

大致相当于C:

int32 *ptr=(int32 *) r2;
*(ptr) = r0;
*(ptr+1) = r1; // 'ptr+1' adds four bytes to the memory position