将寄存器存入内存 ======================== 文件规范 -------------------- 符号:除特殊注明外, ``Rt, Rn`` 表示ARM寄存器R0-R7。 ``immN`` 表示具有N位宽度的即时值,因此 ``imm5`` 的范围限制为0-31。 ``[Rn + imm5]`` 为通过添加Rn和偏移值 ``imm5`` 获得的内存地址的内容。偏移值单位为字节。这些指令不会影响条件标志。 寄存器存储 -------------- * 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位半字对齐值。