Indirect Addressing Modes
5-23C28x Addressing Modes
AMODE ”loc16/loc32” Syntax Description
1 *+XAR6[AR1%++] 32bitDataAddr(31:0) = XAR6 + AR1
if( XAR1(15:0) == XAR1(31:16) )
{
XAR1(15:0) = 0x0000
}
else
{
if(16-bit data), XAR1(15:0) =+ 1
if(32-bit data), XAR1(15:0) =+ 2
}
XAR1(31:16) = unchanged
ARP = 6
Note: With this addressing mode, there is no circular buffer alignment require-
ments.
As seen in Figure 5−2, buffer size is determined by the upper 16 bits of XAR1
or XAR1[31:16]. Specifically, the size is XAR1[31:16] + 1.
XAR6 points to the top of the buffer.
The current address in the buffer is pointed to by XAR6 with an offset of
XAR1[15:0].
If the instructions that access the circular buffer perform 32-bit operations,
make sure XAR6 and XAR1[31:16] are even.