
DSP1611/17/18/27/28/29 DIGITAL SIGNAL PROCESSOR
Information Manual
Instruction Set
April 1998
4-4
DRAFT COPY
Lucent Technologies Inc.
4.3 Addressing Modes
(continued)
4.3.1 Register Indirect Addressing (continued)
Mnemonics have been defined for indirect addressing. X represents data in the X-memory space, and Y repre-
sents data in the Y-memory space. They can have the following replacement values:
X = *pt++
or
*pt++i
Y = one of *rM, *rM++, *rM– – , or *rM++j
Note: M = one of 0, 1, 2, 3
i = postincrement or postdecrement register
j = postincrement or postdecrement register
The asterisk preceding the Y or X address register stands for the data pointed to by the address in the register.
The mnemonics have the following meaning:
*rM. This statement means the data pointed to by the address in the register rM. The contents of the register
are not altered by the operation.
*rM++, *pt++. The ++ following the address register indicates a postincrement of the address register. This
example means the data pointed to by the address in the register; add 1 to the contents of the register after the
operation is complete.
*rM– –. The – – following the address register indicates a postdecrement of the address register. This example
means the data pointed to by the address of the register: subtract 1 from the contents of the register after the
operation is complete.
*rM++j. The ++j following the address register indicates a postincrement of the address register. This example
means the data pointed to by the address in the register and add the value of register j to the contents of the
address register after the operation is complete. Negative values of j yield a postdecrement.
*pt++i. The ++i following the address register indicates a postincrement of the address register. This example
means the data pointed to by the address in the register and add the value of register i to the contents of the
address register after the operation is complete. Negative values of i yield a postdecrement.
Modulo (virtual shift) addressing uses indirect addressing to form the equivalent of a cyclic shift register within the
RAM. Addresses loaded into registers rb and re define the first and last physical addresses of the cyclic shift reg-
ister respectively. If a register is used as a memory pointer, its value is compared with re. If its value is equal to the
contents of re and the postincrement is +1, the value in rb is copied into the register after the memory access is
complete.
Note: Whenever re contains a value not equal to zero, modulo addressing is active. On reset, the value of re is
zero. Whenever modulo addressing is not used, this register should contain zero and should not be used to
store any number other than the address of the end of a modulo. Modulo addressing works only with *rM++,
*rMpz, and *rMzp.
Section 5.3, Y Address Arithmetic Unit (YAAU)
has more detail on modulo addressing.
Summary of Contents for DSP1611
Page 18: ...Chapter 1 Introduction...
Page 27: ...Chapter 2 Hardware Architecture...
Page 52: ...Chapter 3 Software Architecture...
Page 116: ...Chapter 4 Instruction Set...
Page 154: ...Chapter 5 Core Architecture...
Page 176: ...Chapter 6 External Memory Interface...
Page 208: ...Chapter 7 Serial I O...
Page 237: ...Chapter 8 Parallel I O DSP1617 Only...
Page 261: ...Chapter 9 Parallel Host Interface PHIF DSP1611 18 27 28 29 Only...
Page 275: ...Chapter 10 Bit I O Unit...
Page 284: ...Chapter 11 JTAG Test Access Port...
Page 306: ...Chapter 12 Timer...
Page 313: ...Chapter 13 Bit Manipulation Unit...
Page 325: ...Chapter 14 Error Correction Coprocessor DSP1618 28 Only...
Page 350: ...Chapter 15 Interface Guide...
Page 367: ...Appendix A Instruction Encoding...
Page 379: ...Appendix B Instruction Set Summary...
Page 381: ...aD extractz aS IM16 B 52 aD insert aS arM B 53 aD insert aS IM16 B 54 aD aS aaT B 55...
Page 437: ...Index...