INSTRUCTION DESCRIPTIONS
MOTOROLA INSTRUCTION SET DETAILS A - 181
If the opcode-operand portion of the instruction specifies a given source or destination
register, that same register or portion of that register may be used as a source S1 and/or
S2 in the parallel data bus move operation. This allows data to be moved in the same
instruction in which it is being used as a source operand by a data ALU operation. That
is, duplicate sources are allowed within the same instruction. Note that S1 and S2
may specify the same register.
Class I Example:
:
CMPM Y0,A A,X:$1234 A,Y0 ;compare A,Y0 mag., save A, update Y0
:
Explanation of the Class I Example: Prior to execution, the 56-bit A accumulator con-
tains the value $00:800000:000000, the 24-bit X memory location X:$1234 contains the
value $000000, and the 24-bit Y0 register contains the value $000000. The execution of
the parallel move portion of the instruction, A,X:$1234 A,Y0, moves the 24-bit limited
positive saturation constant $7FFFFF into both the X:$1234 memory location and the Y0
register since the signed portion of the A accumulator was in use.
Before Execution After Execution
Y0 Y0
$000000 $7FFFFF
A A
$00:800000:000000 $00:800000:000000
X:$1234 X:$1234
$000000 $7FFFFF
X:R X Memory and Register Data Move X:R