Section 3 DSP Operation
Rev. 4.00 Sep. 14, 2005 Page 137 of 982
REJ09B0023-0400
An example is shown below.
MS=H'7000; ME=H'7004; R4=H'A5007000;
DMX=1; DMY=0 (modulo addressing for address register Ax)
As a result of the above settings, the R4 register changes as follows.
; R4: H'A5007000 (Initial value)
MOVX.W @R4+,Dx ; R4: H'A5007000 → H'A5007002
MOVX.W @R4+,Dx ; R4: H'A5007002 → H'A5007004
MOVX.W @R4+,Dx ; R4: H'A5007004 → H'A5007000 (After reading
H'A5007004, MS value is written to address
register)
MOVX.W @R4+,Dx ; R4: H'A5007000 → H'A5007002
Place the data so that the upper 16 bits of the modulo start and end addresses are the same. This is
because the modulo start address overwrites only the lower 16 bits of the address register.
Note: When addition index is the data addressing type for X and Y data transfer instructions, the
address pointer may exceed the ME value without actually reaching it. In this case, the
address pointer will not return to the modulo start address. Not only with modulo
addressing, but when X and Y data addressing is used, bit 0 is ignored. 0 must always be
written to bit 0 of the address pointer, index register, MS, and ME.