dsp56800 Freescale Semiconductor, Inc, dsp56800 Datasheet - Page 84

no-image

dsp56800

Manufacturer Part Number
dsp56800
Description
16-bit Digital Signal Controllers
Manufacturer
Freescale Semiconductor, Inc
Datasheet
Address Generation Unit
4.1.1
The address register file consists of four 16-bit registers R0-R3 (denoted as Rj) which usually contain
addresses used as pointers to memory. Each register may be read or written by the CGDB. High speed
access to the XAB1, XAB2, and PAB buses is required to allow minimum access time for the internal and
external X data memory and program memory. Each address register may be used as input for the modulo
arithmetic unit for a register update calculation. Each register may be written by the output of the modulo
arithmetic unit.
The R3 register may be used as input to a separate incrementer/decrementer unit for an independent
register update calculation. This unit is used in the case of any instruction that performs two data memory
reads in its parallel move field. For instructions where two reads are performed from the X data memory,
the second read using the R3 pointer must always access on-chip memory.
4.1.2
The stack pointer register (SP) is a single 16-bit register that is used implicitly in all PUSH instruction
macros and POP instructions. The SP is used explicitly for memory references when used with the
address-register-indirect modes. It is post-decremented on all POPs from the software stack. The SP
register may be read or written by the CGDB.
4.1.3
The offset register (N) usually contains offset values used to update address pointers. This single register
can be used to update or index with any of the address registers (R0-R3, SP). This offset register may be
read or written by the CGDB. The offset register is used as input to the modulo arithmetic unit. It is often
used for array indexing or indexing into a table, as discussed in Section 8.7, “Array Indexes,” on page
8-26.
4-4
Address Registers (R0-R3)
Stack Pointer Register (SP)
Offset Register (N)
Due to pipelining, if an address register (Rj, SP, or M01) is changed with
a MOVE or bit-field instruction, the new contents will not be available for
use as a pointer until the second following instruction. If the SP is changed,
no LEA or POP instructions are permitted until the second following
instruction.
This register must be initialized explicitly by the programmer after coming
out of reset.
Due to pipelining, if an address register (Rj, SP, or M01) is changed with
a MOVE or bit-field instruction, the new contents will not be available for
use as a pointer until the second following instruction. If the SP is changed,
no LEA or POP instructions are permitted until the second following
instruction.
DSP56800 Family Manual
NOTE:
NOTE:
Freescale Semiconductor

Related parts for dsp56800