Intel 253666-024US User Manual
Page 742

3-696 Vol. 2A
MUL—Unsigned Multiply
INSTRUCTION SET REFERENCE, A-M
Operation
IF (Byte operation)
THEN
AX ← AL ∗ SRC;
ELSE (* Word or doubleword operation *)
IF OperandSize
=
16
THEN
DX:AX ← AX ∗ SRC;
ELSE IF OperandSize
=
32
THEN EDX:EAX ← EAX ∗ SRC; FI;
ELSE (* OperandSize
=
64 *)
RDX:RAX ← RAX ∗ SRC;
FI;
FI;
Flags Affected
The OF and CF flags are set to 0 if the upper half of the result is 0; otherwise, they
are set to 1. The SF, ZF, AF, and PF flags are undefined.
Protected Mode Exceptions
#GP(0)
If a memory operand effective address is outside the CS, DS,
ES, FS, or GS segment limit.
If the DS, ES, FS, or GS register contains a NULL segment
selector.
#SS(0)
If a memory operand effective address is outside the SS
segment limit.
#PF(fault-code)
If a page fault occurs.
#AC(0)
If alignment checking is enabled and an unaligned memory
reference is made while the current privilege level is 3.
#UD
If the LOCK prefix is used.
Real-Address Mode Exceptions
#GP
If a memory operand effective address is outside the CS, DS,
ES, FS, or GS segment limit.
#SS
If a memory operand effective address is outside the SS
segment limit.
#UD
If the LOCK prefix is used.
Virtual-8086 Mode Exceptions
#GP(0)
If a memory operand effective address is outside the CS, DS,
ES, FS, or GS segment limit.