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 AL * r/m byte |
F7 /5 | IMUL r/m16 | DX:AX AX * r/m word |
F7 /5 | IMUL r/m32 | EDX:EAX EAX * r/m doubleword |
0F AF / r | IMUL r16, r/m16 | word register word register * r/m word |
0F AF / r | IMUL r32, r/m32 | doubleword register doubleword register * r/m doubleword |
6B / r ib | IMUL r16, r/m16, imm8 | word register r/m16 * sign-extended immediate byte |
6B / r ib | IMUL r32, r/m32, imm8 | doubleword register r/m32 * sign-extended immediate byte |
6B / r ib | IMUL r16, imm8 | word register word register * sign-extended immediate byte |
6B / r ib | IMUL r32, imm8 | doubleword register doubleword register * sign-extended immediate byte |
69 / r iw | IMUL r16, r/m16, imm16 | word register r/m16 * immediate word |
69 / r id | IMUL r32,r /m32, imm32 | doubleword register r/m32 * immediate doubleword |
69 / r iw | IMUL r16, imm16 | word register r/m16 * immediate word |
69 / r id | IMUL r32, imm32 | doubleword register r/m32 * immediate doubleword |
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 |