INSTRUCTION DESCRIPTIONS
A - 214 INSTRUCTION SET DETAILS MOTOROLA
Operation: Assembler Syntax:
SP:ea MOVE(M) S,P:ea
SP:aa MOVE(M) S,P:aa
P:eaD MOVE(M) P:ea,D
P:aaD MOVE(M) P:aa,D
Description: Move the specified operand from/to the specified program (P) memory
location. This is a powerful move instruction in that the source and destination registers
S and D may be any register. All memory alterable addressing modes may be used as
well as the absolute short addressing mode.
If the system stack register SSH is specified as a source operand, the system stack
pointer (SP) is postdecremented by 1 after SSH has been read. If the system stack reg-
ister SSH is specified as a destination operand, the system stack pointer (SP) is prein-
cremented by 1 before SSH is written. This allows the system stack to be efficiently
extended using software stack pointer operations.
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-bit destination, the value stored in
the destination is limited to a maximum positive or negative saturation constant to mini-
mize truncation error. If a 24-bit source operand is to be moved into a 16-bit destination
register D, the 8 MS bits of the 24-bit source operand are discarded, and the 16 LS bits
are stored in the 16-bit destination register. Limiting does not occur if an individual 24-bit
accumulator 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 opera-
tions to be performed with error detection since the L bit in the condition code register is
latched.
When a 56-bit accumulator (A) 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 24) and appending the source oper-
and with 24 LS zeros. Whenever a 16-bit source operand S is to be moved into a 24-bit
destination, the 16-bit source is loaded into the LS 16 bits of the destination operand,
and the remaining 8 MS bits of the destination are zeroed. Note that for 24-bit source
MOVEM Move Program Memory MOVEM