Motorola DSP56800 Manual page 354

16-bit digital signal processor
Table of Contents

Advertisement

MOVE(P)
Operation:
X:<pp> → D
S → X:<pp>
#xxxx → X:<pp>
Description: Move the specified operand to or from a location in the last 64 words of the X data memory map. The
6-bit short absolute address is one-extended to generate a 16-bit address.
When a 36-bit accumulator (A or B) is specified as a source operand, there is a possibility that the data
may be limited. If the data out of the shifter indicates that the accumulator extension register is in use,
and the data is to be moved into a 16-bit destination, the value stored in the destination is limited to a
maximum positive or negative saturation constant to minimize truncation error. Limiting does not oc-
cur if an individual 16-bit accumulator register (A1, A0, B1, or B0) is specified as a source operand
instead of the full 36-bit accumulator (A or B). This limiting feature allows block floating-point oper-
ations to be performed with error detection since the L bit in the CCR is latched (that is, sticky).
When a 36-bit accumulator (A or B) is specified as a destination operand, any 16-bit source data to be
moved into that accumulator is automatically extended to 36 bits by sign extending the MSB of the
source operand (bit 15) and appending the source operand with 16 LS zeros. The automatic sign ex-
tension and zeroing features may be circumvented by specifying the destination register to be one of
the individual 16-bit accumulator registers (A1 or B1).
Usage:
This MOVE(P) instruction provides a more efficient way of accessing the last 64 locations in X mem-
ory, which may be allocated to memory-mapped peripheral registers. Consult the specific
DSP56800-based device's user manual for information on where in the memory map peripheral regis-
ters are located.
Example:
MOVEP
Before Execution
X:$FFE2
R1
Explanation of Example:
Prior to execution, the location $FFE2 contains the value $0123. Execution of the
MOVE(P) R1,X:<$FFE2 instruction moves the value $5555 contained in the R1 register into the
location.
Example:
MOVEP
Before Execution
X:$FFE4
Explanation of Example:
Prior to execution, the word at X data memory location $FFE4 contains the value $AAAA. The
MOVEP one-extends the value $24 to form the address $FFE4. Execution of the instruction moves the
value $0342 into this location.
A-124
Move Peripheral Data
Assembler Syntax:
MOVE(P)
MOVE(P)
MOVE(P)
R1,X:<$FFE2
; write to location X:$FFE2
0123
5555
#$0342,X:<$24 ; moves 16-bit value into location $FFE4
AAAA
DSP56800 Family Manual
MOVE(P)
X:<pp>,D
S,X:<pp>
#xxxx,X:<pp>
After Execution
X:$FFE2
5555
R1
5555
After Execution
X:$FFE4
0342

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents