MUL
MULTIPLY
MUL
Operation:
(DES)
+-
(LSRC) * (RSRC),
where
*
is
unsigned
multiply
if
(EXT) = 0
then
(CF)
+-
0
else
(CF) +-1;
(OF)
+-
(CF)
Description:
MUL source
MUL (Multiply) performs an unsigned multi-
plication
of
the source operand
and
the accum-
ulator.
If
the source
is
a byte, then it
is
multiplied by register AL,
and
the double-
length result
is
returned in
AH
and
AL.
If
the
source operand
is
a word, then it
is
multiplied
by register AX,
and
the double-length result
is
returned in registers
DX
and
AX.
The oper-
Encoding:
11111
011
w 1 mod 1
00
rIm 1
Flags
Affected:
CF, OF.
AF, PF, SF, ZF
undefined
ands are treated as unsigned binary numbers
(see AAM).
If
the upper half of the result (AH
for byte source, DX for word source)
is
non-
zero,
CF
and
OF
are set; otherwise they are
cleared. When
CF
and
OF
are set, they indi-
cate
that
AH
or
DX contains significant digits
of the result. The content of
AF,
PF,
SF and
ZF
is
undefined following execution
of
MUL.
if
w = 0
then
LSRC = AL, RSRC = EA, DEST = AX, EXT = AH
else LSRC = AX, RSRC = EA, DEST = DX:AX, EXT =
OX
M U L
Operands
Clocks
Transfers
Bytes
MUL
Coding
Example
reg8
70-77
-
2
MUL
BL
reg16
118-113
- 2
MULCX
mem8 (76-83)+ EA 1
2-4
MUL
MONTH [SI]
mem16
(128-143)
+ EA 1
2-4
MUL
BAUD_RATE
2-119