我无法弄清楚这条ARM指令的作用:
strd.w r0, r1, [r2]
我知道这是一个存储指令,可以存储*r2
的内容,但我不完全确定是什么。为什么有两个源寄存器(r0
和r1
)以及d.w
后缀是什么意思?
答案 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