3. Register opslaan in geheugen

3.1. Documentconventies

Notatie: Rt, Rn duiden de ARM-registers R0-R7 aan, behalve waar anders aangegeven. immN stelt een immediate-waarde voor met een breedte van N bits, vandaar dat imm5 beperkt is tot het bereik 0-31. [Rn + imm5] is de inhoud van het geheugenadres dat wordt verkregen door Rn en de offset imm5 op te tellen. Offsets worden gemeten in bytes. Deze instructies beïnvloeden de conditievlaggen niet.

3.2. Register opslaan

  • str(Rt, [Rn, imm7]) [Rn + imm7] = Rt Sla een 32-bits woord op

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt Sla een byte op (b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt Sla een 16-bits halfwoord op (b0-b15)

De opgegeven immediate-offsets worden gemeten in bytes. Vandaar dat in het geval van str de 7-bits waarde het mogelijk maakt om 32-bits woord-uitgelijnde waarden te benaderen met een maximale offset van 31 woorden. In het geval van strh maakt de 6-bits waarde het mogelijk om 16-bits halfwoord-uitgelijnde waarden te benaderen met een maximale offset van 31 halfwoorden.