2. Register laden uit geheugen¶
2.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 + immN] is de inhoud van het geheugenadres dat wordt verkregen door Rn en de offset immN op te tellen. Offsets worden gemeten in bytes. Deze instructies beïnvloeden de conditievlaggen.
2.2. Register laden¶
ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]Laad een 32-bits woordldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]Laad een byteldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]Laad een 16-bits halfwoord
Waar een byte of halfwoord wordt geladen, wordt deze met nullen uitgebreid (zero-extended) tot 32 bits.
De opgegeven immediate-offsets worden gemeten in bytes. Vandaar dat in het geval van ldr 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 ldrh maakt de 6-bits waarde het mogelijk om 16-bits halfwoord-uitgelijnde waarden te benaderen met een maximale offset van 31 halfwoorden.