
55
data addressing, only bits 1 to 15 of the address pointer are valid. Always write a 0 to bit 0 of the
address pointer and the index register during X, Y data addressing.
Figure 2.9 shows the X, Y data transfer addressing. In accesses to X memory, Y memory using the
X, Y bus, the upper word of Ax (R4 or R5), Ay (R6 or R7) is disregarded. Additionally, @Ay +,
@Ay + Iy results are stored in the lower word of Ay and the upper word retains its original value.
ALU
AU*
1
R8[Ix]
R4[Ax]
R5[Ax]
R9[Iy]
R6[Ay]
R7[Ay]
+2 (INC)
+0 (No update)
Notes: 1.
2.
Adder added for DSP addressing.
All three addressing methods (increment, index register addition (Ix, Iy), and
no update) are post-updating methods. To decrement the address pointer, set
the index register to –2 or –4.
Figure 2.9 X, Y Data Transfer Addressing
Single-Data Addressing: From among the DSP instructions, the SH-DSP uses the single-data
transfer instructions (MOVS.W and MOVS.L) to either load data into DSP registers or to store it
from them. With these instructions, the registers R2 to R5 are used as address registers (As) for the
single data transfers.
The four following data addressing instructions exist for single-data transfer instructions:
1. Nonupdated address registers: The As registers are address pointers. They are not updated.
2. Add index registers: The As registers are address pointers. The Is register values are added to
them after the data transfer (post-update).
3. Increment address registers: The As registers are address pointers. The value +2 or +4 is added
after the data transfer (post-update).
4. Decrement address registers: The As registers are address pointers. The value –2 or –4 is added
(+2 or +4 is subtracted) before the data transfer (pre-update).
The address pointer (As) uses the R8 register as an index register (Is).
Figure 2.10 shows the single-data transfer addressing.