Linear Addressing With A Modulo Modifier - Motorola DSP56000 Manual

24-bit digital signal processor
Hide thumbs Also See for DSP56000:
Table of Contents

Advertisement

k
2
k
2
Figure 4-12 Linear Addressing with a Modulo Modifier
as 0, 32, 64, 96, 128, 160, etc. For this example, L is arbitrarily chosen to be 2, making
the lower boundary 64. The upper boundary of the buffer is then 84 (the lower boundary
plus 20 (M–1)). The Mn register is loaded with the value 20 (M–1). The offset register is
arbitrarily chosen to be 15 (Nn
address boundary and can begin anywhere within the defined modulo address range —
i.e., within the lower boundary + (2
chosen to be 75 in this example. When R2 is post-incremented by the offset by the MOVE
instruction, instead of pointing to 90 (as it would in the linear mode) it wraps around to 69.
If the address register pointer increments past the upper boundary of the buffer (base ad-
dress plus M–1), it will wrap around to the base address. If the address decrements past
the lower boundary (base address), it will wrap around to the base address plus M–1.
If Rn is outside the valid modulo buffer range and an operation occurs that causes Rn to
be updated, the contents of Rn will be updated according to modulo arithmetic rules. For
example, a MOVE B0,X:(R0)+ N0 instruction (where R0=6, M0=5, and N0=0) would ap-
parently leave R0 unchanged since N0=0. However, since R0 is above the upper
boundary, the AGU calculates R0+ N0–M0–1 for the new contents of R0 and sets R0=0.
4 - 20
ADDRESSING
M
M
M). The address pointer is not required to start at the lower
k
) address region. The address pointer, Rn, is arbitrarily
ADDRESS GENERATION UNIT
±
(Rn)
Nn MOD M
k
WHERE Nn = 2
(i.e., P = 1)
MOTOROLA

Advertisement

Table of Contents
loading

This manual is also suitable for:

Dsp56k

Table of Contents