3. Store register to memory¶
3.1. Document conventions¶
Notation: Rt, Rn denote ARM registers R0-R7 except where stated. immN represents an immediate
value having a width of N bits hence imm5 is constrained to the range 0-31. [Rn + imm5] is the
contents of the memory address obtained by adding Rn and the offset imm5. Offsets are measured in
bytes. These instructions do not affect the condition flags.
3.2. Register Store¶
str(Rt, [Rn, imm7])
[Rn + imm7] = RtStore a 32 bit wordstrb(Rt, [Rn, imm5])
[Rn + imm5] = RtStore a byte (b0-b7)strh(Rt, [Rn, imm6])
[Rn + imm6] = RtStore a 16 bit half word (b0-b15)
The specified immediate offsets are measured in bytes. Hence in the case of str the 7 bit value
enables 32 bit word aligned values to be accessed with a maximum offset of 31 words. In the case of strh the
6 bit value enables 16 bit half-word aligned values to be accessed with a maximum offset of 31 half-words.