IMUL - Signed Multiply |
* |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
? |
Code | Mnemonic | Description |
F6 /5 | IMUL r/m8 | AX ![]() |
F7 /5 | IMUL r/m16 | DX:AX ![]() |
F7 /5 | IMUL r/m32 | EDX:EAX ![]() |
0F AF / r | IMUL r16, r/m16 | word register ![]() |
0F AF / r | IMUL r32, r/m32 | doubleword register ![]() |
6B / r ib | IMUL r16, r/m16, imm8 | word register ![]() |
6B / r ib | IMUL r32, r/m32, imm8 | doubleword register ![]() |
6B / r ib | IMUL r16, imm8 | word register ![]() |
6B / r ib | IMUL r32, imm8 | doubleword register ![]() |
69 / r iw | IMUL r16, r/m16, imm16 | word register ![]() |
69 / r id | IMUL r32,r /m32, imm32 | doubleword register ![]() |
69 / r iw | IMUL r16, imm16 | word register ![]() |
69 / r id | IMUL r32, imm32 | doubleword register ![]() |
Accumulator Operands | Multiplies Bytes | Clocks | |
r8 | 2 | 11 | NP |
r16 | 2 | 11 | NP |
r32 | 2 | 10 | NP |
mem8 | 2 + d(0 - 2) | 11 | NP |
mem16 | 2 + d(0 - 2) | 11 | NP |
mem32 | 2 + d(0 - 2) | 10 | NP |
implied multiplicand | operand (multiplier) | result | ||
AL | * | byte | = | AX |
AX | * | word | = | DX:AX |
EAX | * | dword | = | EDX:EAX |
2 and 3 operand Multiplies
Operands | Bytes | Clocks | |
r16, imm | 2 + i(1, 2) | 10 | NP |
r32, imm | 2 + i(1, 2) | 10 | NP |
r16, r16, imm | 2 + i(1, 2) | 10 | NP |
r32, r32, imm | 2 + i(1, 2) | 10 | NP |
r16, m16, imm | 2 + d(0 - 2) + i(1, 2) | 10 | NP |
r32, m32, imm | 2 + d(0 - 2) + i(1, 2) | 10 | NP |
r16, r16 | 2 + i(1, 2) | 10 | NP |
r32, r32 | 2 + i(1, 2) | 10 | NP |
r16, m16 | 2 + d(0 - 2) + i(1, 2) | 10 | NP |
r32, m32 | 2 + d(0 - 2) + i(1, 2) | 10 | NP |
Flags
ID | unaffected | DF | unaffected |
VIP | unaffected | IF | unaffected |
VIF | unaffected | TF | unaffected |
AC | unaffected | SF | undefined |
VM | unaffected | ZF | undefined |
RF | unaffected | AF | undefined |
NT | unaffected | PF | undefined |
IOPL | unaffected | CF | For the one operand form of the instruction, sets when significant bits are carried into the upper half of the result and cleared when the result fits exactly in the lower half of the result. For the two- and three-operand forms of the instruction, sets when the result must be truncated to fit in the destination operand size and cleared when the result fits exactly in the destination operand size |
OF | For the one operand form of the instruction, sets when significant bits are carried into the upper half of the result and cleared when the result fits exactly in the lower half of the result. For the two- and three-operand forms of the instruction, sets when the result must be truncated to fit in the destination operand size and cleared when the result fits exactly in the destination operand size |