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.