其他信息
IMUL al,r/m8 : AX <= AL * r/m
IMUL ax,r/m16 : DX:AX <= AX * r/m
IMUL eax,r/m32 : EDX:EAX <= EAX * r/m
IMUL r16,r/m16 : 字暫存器 <= 字暫存器 * r/m
IMUL r32,r/m32 : 雙字暫存器 <= 雙字暫存器 * r/m 雙字
IMUL r16,r/m16,imm8 : 字暫存器 <= r/m16 * 符號擴展的立即數位元組
IMUL r32,r/m32,imm8 : 雙字暫存器 r/m32 * 符號擴展的立即數位元組
IMUL r16,imm8 : 字暫存器 <= 字暫存器 * 符號擴展的立即數位元組
IMUL r32,imm8 : 雙字暫存器 <= 雙字暫存器 * 符號擴展的立即數位元組
IMUL r16,r/m16,imm16 : 字暫存器 <= r/m16 * 立即數字
IMUL r32,r/m32,imm32 : 雙字暫存器 <= r/m32 * 立即數雙字
IMUL r16,imm16 : 字暫存器 <= r/m16 * 立即數字
IMUL r32,imm32 : 雙字暫存器 <= r/m32 * 立即數雙字
根據運算元的數量,此指令有三種形式。
運算元
單運算元
此形式與 MUL 指令使用的形式完全相同。這裡,源運算元(位於通用暫存器或記憶體位置)乘以 AL、AX 或 EAX 暫存器(取決於運算元大小)中的值,乘積分別存儲到 AX、DX:AX 或 EDX:EAX 暫存器。
雙運算元
對於此種形式,目標運算元(第一個運算元)乘以源運算元(第二個運算元)。目標運算元是通用暫存器,源運算元可以是立即數、通用暫存器或記憶體位置。乘積隨後存儲到目標運算元位置。
三運算元
此種形式需要一個目標運算元(第一個運算元)與兩個源運算元(第二個與第三個運算元)。這裡,第一個源運算元(可以是通用暫存器或記憶體位置)乘以第二個源運算元(立即數)。乘積隨後存儲到目標運算元(通用暫存器)。