
MUL
MULTIPLYMUL
Operation: | Flags Affected: |
(DES) +- (LSRC) * (RSRC), where * | CF, OF. |
is unsigned multiply | AF, PF, SF, ZF undefined |
if (EXT) = 0 then (CF) +- 0 |
|
else (CF) |
|
(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
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.
Encoding:
11111 011 w 1mod 1 00 rIm 1
if w = 0 then LSRC = AL, RSRC = EA, DEST = AX, EXT = AH else LSRC = AX, RSRC = EA, DEST = DX:AX, EXT = OX
MUL Operands | Clocks | Transfers Bytes MUL Coding Example | ||
reg8 | - | 2 | MUL BL | |
reg16 | - | 2 | MULCX | |
mem8 | 1 | MUL MONTH [SI] | ||
mem16 | 1 | MUL BAUD_RATE |