对ARM指令感到困惑

Kri*_*oks 5 arm

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

strd.w          r0, r1, [r2]
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*rtz 9

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

大致相当的C将是:

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