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] = RtSla een 32-bits woord opstrb(Rt, [Rn, imm5])
[Rn + imm5] = RtSla een byte op (b0-b7)strh(Rt, [Rn, imm6])
[Rn + imm6] = RtSla 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.