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 位元字組(word)

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt 儲存一個位元組(b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt 儲存一個 16 位元半字組(b0-b15)

所指定的立即偏移量以位元組為單位。因此,就 str 而言,7 位元的值可讓 32 位元字組對齊的值以最大 31 個字組的偏移量被存取。就 strh 而言,6 位元的值可讓 16 位元半字組對齊的值以最大 31 個半字組的偏移量被存取。