Using the indirect addressing modes to specify register bit(s) can be done as follows:
mov
#2, AR4
; AR4 contains the bit offset 2
bset *AR4, AC3 ; Set the AC3 bit pointed by AR4 to 1
btstp *AR4, AC1 ; Test AC1 bit-pair pointed by AR4
The register bit-addressing mode supports only the bit test, bit set, bit clear, and bit
complement instructions in conjunction with the accumulators (AC0±AC3), auxiliary
registers (AR0±AR7), and temporary registers (T0±T3).
2.4.6 Circular Addressing Mode
Circular addressing mode provides an efficient method for accessing data buffers
continuously without having to reset the data pointers. After accessing data, the data
buffer pointer is updated in a modulo fashion. That is, when the pointer reaches the
end of the buffer, it will wrap back to the beginning of the buffer for the next iteration.
Auxiliary registers (AR0±AR7) and the CDP can be used as circular pointers in
indirect addressing mode. The following steps are commonly used to set up circular
buffers:
1. Initialize the most significant 7-bit extended auxiliary register (ARnH or CDPH) to
select the main data page for a circular buffer. For example, mov #k7, AR2H.
2. Initialize the 16-bit circular pointer (ARn or CDP). The pointer can point to any
memory location within the buffer. For example, mov #k16, AR2 (the initialization
of the address pointer in the example of steps 1 and 2 can also be done using the
amov #k23, XAR2 instruction).
3. Initialize the 16-bit circular buffer starting address register (BSA01, BSA23, BSA45,
BSA67, or BSAC) associated with the auxiliary registers. For example, mov #k16,
BSA23, if AR2 (or AR3) is used as the circular addressing pointer register. The main
data page concatenated with the content of this register defines the 23-bit starting
address of the circular buffer.
4. Initialize the data buffer size register (BK03, BK47, or BKC). When using AR0±
AR3 (or AR4±AR7) as the circular pointer, BK03 (or BK47) should be initialized.
The instruction, mov #16, BK03, sets up a circular buffer of 16 elements for the
auxiliary registers, AR0±AR3.
5. Enable the circular buffer configuration by setting the appropriate bit in the status
register ST2. For example, the instruction bset AR2LC enables AR2 for circular
addressing.
Refer to the TMS320C55x DSP CPU Reference Guide [1] for details on circular
addressing mode. The following example demonstrates how to initialize a four integer
circular buffer, COEFF[4], and how the circular addressing mode accesses data in the
buffer:
58
INTRODUCTION TO TMS320C55X DIGITAL SIGNAL PROCESSOR