Addressing With the AAU
Indexed Addressing With Immediate Offset
Indexed addressing allows programs to obtain values from data tables,
with reference to the base of that table. The Pointer register is modified by
the immediate field and then used as the effective address. The value of
the Pointer register is not updated.
Alignment exceptions are triggered when a final address is
unaligned.
For example, if
, which is aligned for all accesses.
[0x24]
Auto-increment and Auto-decrement Addressing
Auto-increment addressing updates the Pointer and Index registers after
the access. The amount of increment depends on the word size. An access
of 32-bit words results in an update of the Pointer by 4. A 16-bit word
access updates the Pointer by 2, and an access of an 8-bit word updates the
Pointer by 1. Both 8- and 16-bit read operations may specify either to
sign-extend or zero-extend the contents into the destination register.
Pointer registers may be used for 8-, 16-, and 32-bit accesses while Index
registers may be used only for 16- and 32-bit accesses.
For example:
R0 = W [ P1++ ] (Z)
loads a 16-bit word into a 32-bit destination register from an address
pointed to by the
2 and the word is zero extended to fill the 32-bit destination register.
Auto-decrement works the same way by decrementing the address after
the access.
5-10
ADSP-BF53x/BF56x Blackfin Processor Programming Reference
, then
P1 = 0x13
[P1 + 0x11]
;
Pointer register. The Pointer is then incremented by
P1
would effectively be equal to