3. 将寄存器存储到内存¶
3.1. 文档约定¶
符号:除非另有说明,否则表示 ARM 寄存器 R0-R7。表示具有 N 位宽度的立即数,因此被限制在 0-31 的范围内。是Rn和offset相加得到的内存地址的内容。偏移量以字节为单位。这些指令不影响条件标志。Rt, Rn
immN
imm5
[Rn + imm5]
imm5
3.2. 注册商店¶
str(Rt, [Rn, imm7])存储一个 32 位字
[Rn + imm7] = Rt
strb(Rt, [Rn, imm5])存储一个字节 (b0-b7)
[Rn + imm5] = Rt
strh(Rt, [Rn, imm6])存储一个 16 位半字 (b0-b15)
[Rn + imm6] = Rt
指定的立即偏移量以字节为单位。因此,str
在 7 位值的情况下,可以访问 32 位字对齐的值,最大偏移量为 31 个字。在strh
6 位值的情况下,允许访问 16 位半字对齐值,最大偏移量为 31 个半字。