Motorola DSP56800 Manual page 356

16-bit digital signal processor
Table of Contents

Advertisement

MOVE(S)
Operation:
X:<aa> → D
S → X:<aa>
#xxxx → X:<aa>
Description: Move the specified operand from or to the first 64 memory locations in X data memory. The 6-bit ab-
solute short address is zero-extended to generate a 16-bit X data memory 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).
Example:
MOVES
Before Execution
X:$0034
Y1
Explanation of Example:
Prior to execution, X:$0034 contains the value $5555 and Y1 contains the value $0123. Execution of
the instruction moves the value $5555 into the Y1 register.
Example:
MOVES
Before Execution
X:$0024
Explanation of Example:
Prior to execution, the contents of the X data memory location $0024 contains the value $AAAA. The
MOVES zero-extends the value $24 to form the memory address $0024. Execution of the instruction
moves the value $0342 into this location.
A-126
Move Absolute Short
Assembler Syntax:
MOVE(S)
MOVE(S)
MOVE(S)
X:<$0034,Y1
; write to X:$0034
5555
0123
#$0342,X:<$24 ; moves 16-bit value directly into
; memory location
AAAA
DSP56800 Family Manual
MOVE(S)
X:<aa>,D
S,X:<aa>
#xxxx,X:<aa>
After Execution
X:$0034
5555
Y1
5555
After Execution
X:$0024
0342

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents