IMUL

IMUL

IMUL是一個計算機函式,功能是將被乘數與乘數均作為有符號數, 它按照符號擴展方式擴展到目標運算元格式的長度。

基本介紹

  • 中文名:IMUL
  • 外文名:IMUL
  • 特徵:符號乘法
  • 作用:將被乘數與乘數均作為有符號數
  • 運算元:單雙操作數等
基本信息,其他信息,運算元,單運算元,雙運算元,三運算元,標誌影響,

基本信息

imul 有符號乘法,將被乘數與乘數均作為有符號數
mul 無符號乘法,將被乘數及乘數均作為無符號數。
可以有三個運算元:imul eax,eax,0Ch
第3運算元是乘數,
第2運算元是被乘數,
運算結果放入第1運算元。

其他信息

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 暫存器。

雙運算元

對於此種形式,目標運算元(第一個運算元)乘以源運算元(第二個運算元)。目標運算元是通用暫存器,源運算元可以是立即數、通用暫存器或記憶體位置。乘積隨後存儲到目標運算元位置。

三運算元

此種形式需要一個目標運算元(第一個運算元)與兩個源運算元(第二個與第三個運算元)。這裡,第一個源運算元(可以是通用暫存器或記憶體位置)乘以第二個源運算元(立即數)。乘積隨後存儲到目標運算元(通用暫存器)。

標誌影響

有效位進位到結果的上半部分時,CF 與 OF 標誌設定為 1。結果正好可以存儲到結果的下半部分時,清除 CF 與 OF 標誌。
無論運算元是否有符號,乘積的下半部分都相同,所以雙運算元與三運算元形式也可以使用無符號運算元。不過,此時不能使用 CF 與 OF 標誌確定結果的上半部分是否非零。

相關詞條

熱門詞條

聯絡我們