Operation: Source * Destination -->; Destination
MULS.W <ea>, Dn
16 x 16 -->; 32
MULS.L <ea>, Dl
32 x 32 -->; 32
MULS.L <ea>, Dh:Dl
32 x 32 -->; 64
Attributes: Size = (Word, Long)
Description: Multiplies two signed operands yielding a signed
result. This instruction has a word operand form and a
long-word operand form.
In the word form, the multiplier and multiplicand are
both word operands, and the result is a long-word operand.
A register operand is the low-order word; the upper word
of the register is ignored. All 32 bits of the product are
saved in the destination data register.
In the long form, the multiplier and multiplicand are both
long-word operands, and the result is either a long word or
a quad word. The long-word result is the low-order 32
bits of the quad word result; the high-order 32 bits of the
product are discarded.
X Not affected.
N Set if the result is negative. Cleared otherwise.
Z Set if the result is zero. Cleared otherwise.
V Set if overflow. Cleared otherwise.
C Always cleared.
Note: Overflow (V = 1) can occur only when multiplying 32-bit
operands to yield a 32-bit result. Overflow occurs if the
high-order 32 bits of the quad-word product are not the
sign extension of the low-order 32 bits.