ARM Load and Store Instructions PDF
ARM Load and Store Instructions PDF
[Rn] Register
Address accessed is value found in Rn.
Example:
ldr r0, [r1] @ r0 *r1 Memory
.
.
.
r1 r0 Destination
0x200 0x200 0x5 0x5 Register
for ldr
.
.
ARM Addressing Modes (Pre-Indexing)
Memory
Example: .
.
ldr r2, [r1, #12] @ r2 ← *(r1 + 12) .
r1 188
r2
200 27 27
Destination
Register
for ldr
ARM Addressing Modes (Pre-Indexing)
[Rn, ±Rm] Register offset
Address accessed is the value in Rn ±
the value in Rm. Rn and Rm do not
change values.
Example:
ldr r2, [r0, r1] @ r2 ← *(r0 + r1)
ARM Addressing Modes (Pre-Indexing)
Example:
ldr r0, [r1, r2, lsl #2] @ r0 ← *(r1 + r2*4)
ARM Addressing Modes (Pre-Indexing w\ update
[Rn, #±imm]! Immediate pre-indexed w\update
Address accessed is as with immediate
offset mode, but Rn's value updates to
become the address accessed.
Example:
ldr r2, [r1, #12]! @ r1 ← r1 + 12 then r2 ← *r1
ARM Addressing Modes (Pre-Indexing w\ update
Example:
ldr r2, [r0, r1]! @ r0 ← r0 + r1 then r2 ← *r0
ARM Addressing Modes (Pre-Indexing w\ upadate
Example:
ldr r2, [r0, r1, lsl #2]! @ r0 ← r0 + r1*4 then r2 ← *r0
ARM Addressing Modes (Post-Indexing)
Example:
str r2, [r1], +4 @ *r1 ← r2 then r1 ← r1 + 4
ARM Addressing Modes (Post-Indexing)