3. 将寄存器存入内存¶
3.1. 文件约定¶
符号:除特殊注明外,`` Rt, Rn`` 表示ARM寄存器R0-R7。 immN
表示具有N位宽度的即时值,因此 imm5
的范围限制为0-31。 [Rn + imm5]
为通过添加Rn和偏移值 imm5
获得的内存地址的内容。偏移值单位为字节。这些指令不会影响条件标志。
3.2. 寄存器存储¶
str(Rt, [Rn, imm7])
[Rn + imm7] = Rt
储存一个32位字strb(Rt, [Rn, imm5])
[Rn + imm5] = Rt
储存一个字节(b0-b7)strh(Rt, [Rn, imm6])
[Rn + imm6] = Rt
储存一个16位半字(b0-b15)
指定即时偏差值的单位为字节。因此在 str
的情况下,7位值使得可用31字的最大偏差访问32位字对齐值。 在 strh
的情况下,6位值使得可用31半字的最大偏差访问16位半字对齐值。