This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

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] = Rt Store a 32 bit word

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt Store a byte (b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt Store 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.