beautypg.com

Intel 253666-024US User Manual

Page 742

background image

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.