Assembly Language Programming
Post-indexed Addressing
A fifth and final addressing mode is post-indexed addressing, which is always auto-indexing. In this mode, the base address stored in the base register is used directly as the effective address, and it is then auto-indexed to point to the next memory location.
| LDR | r0, [r1, #4] | ; load value at memory location pointed to by r1. |
| ; Then increment r1 such that r1:= r1 +4 |
The copy data example program can then be modified as follows:
| copycode | ADR | r1, SOURCEDATA | ; the value of r1 points to the SOURCEDATA location in memory |
| ADR | r2, DESTDATA | ; the value of r2 points to the DESTDATA location in memory | |
| loop | LDR | r0, [r1], #4 | ; load value at memory location pointed to by r1 into r0. Increment r1 |
| STR | r0, [r2], #4 | ; store value in r0 to memory location pointed to by r2. Increment r2 | |
| . | ; decide if more data is available and if so branch to loop | ||
| SOURCEDATA | . | ; source of data | |
| . | |||
| DESTDATA | . | ; destination for the data | |