Register indirect addressing
We have already encountered this addressing mode where the location of an operand is held in a register. It is called register indirect addressing because the instruction specifies the register where a pointer to the actual operand can be found. In ARM literature, this addressing mode is called indexed addressing. Some people call this base addressing.
Register indirect addressing mode requires three read operations to access an operand:
- Read the instruction to find the pointer register
- Read the pointer register to find the operand address
- Read memory at the operand address to find the operand
Register indirect addressing is important because the contents of the register containing the pointer to the actual operand can be modified at runtime, and therefore, the address is a variable. Consequently, we can step through data structures such as tables by changing the pointer.
Figure 11.2 – Register...