INSTRUCTION DESCRIPTIONS
A - 158 INSTRUCTION SET DETAILS MOTOROLA
Operation: Assembler Syntax:
SD MOVE S,D
Description: Move the contents of the specified data source S to the specified destina-
tion D. This instruction is equivalent to a data ALU NOP with a parallel data move.
When a 56-bit accumulator (A or B) is specified as a source operand S, the accumulator
value is optionally shifted according to the scaling mode bits S0 and S1 in the system
status register (SR). 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 24- or 48-bit destination, the value
stored in the destination D is limited to a maximum positive or negative saturation con-
stant to minimize truncation error. Limiting does not occur if an individual 24-bit accumu-
lator register (A1, A0, B1, or B0) is specified as a source operand instead of the full 56-bit
accumulator (A or B). This limiting feature allows block floating-point operations to be
performed with error detection since the L bit in the condition code register is latched.
When a 56-bit accumulator (A or B) is specified as a destination operand D, any 24-bit
source data to be moved into that accumulator is automatically extended to 56 bits by
sign extending the MS bit of the source operand (bit 23) and appending the source oper-
and with 24 LS zeros. Similarly, any 48-bit source data to be loaded into a 56-bit accu-
mulator is automatically sign extended to 56 bits. Note that for 24-bit source operands
both the automatic sign-extension and zeroing features may be disabled by specifying
the destination register to be one of the individual 24-bit accumulator registers (A1 or
B1). Similarly, for 48-bit source operands, the automatic sign-extension feature may be
disabled by using the long memory move addressing mode and specifying A10 or B10
as the destination operand.
Example: :
MOVE X0,A1 ;move X0 to A1 without sign ext. or zeroing
:
MOVE Move Data MOVE
A A
$FF:FFFFFF:FFFFFF $FF:234567:FFFFFF
Before Execution After Execution
X0 X0
$234567 $234567