快好知 kuaihz订阅看过栏目

 

MUL(Un edMultiple)无符号数乘法IMUL(Sign edMultiple)带符号数乘法

乘法指令

MUL(UnsignedMultiple)无符号数

IMUL(SignedMultiple)带符号数乘法

MUL无符号数乘法指令

格式为:MULSRC

执行的操作为:

字节操作数:(AX)←(AL)*(SRC)

字操作数:(DX,AX)←(AX)*(SRC)

IMUL带符号数乘法指令

格式为:IMULSRC

执行的操作为:它执行的操作与MUL相同,但必须是带符号数,而MUL是无符号数。

说明:

在乘法指令里,目的操作数必须是累加器,字运算为AX,字节运算为AL.两个8位数相

乘得到的是16位乘积存放在AX中,两个16位数相乘得到的是32位乘积,存放在DX,AX中,

其中DX放高位,AX放低位。

乘法指令对除CF和OF以外的条件码位无定义(无定义是指指令执行后这些条件码位的

状态不定)。

对于MUL指令,如果乘积的高一半为0,则CF和OF均为0;否则CF和OF均为1。

对于IMUL指令,如果乘积的高一半是低一半的符号扩展则CF和OF均为0,否则就均为1

例如

如(AL)=0B4H,(BL)=11H,求执行指令MULBL和IMULBL后的乘积值。

(AL)=0B4H为无符号数180D,带符号数的-76D,

(BL)=11H为无符号数17D,带符号数的17D.

执行MULBL的结果为:

(AX)=0BF4H=3060DCF=OF=1

执行IMULBL的结果为:

(AX)=0FAF4H=-1292DCF=0F=1

参考资料

http://home.aihua.us/asm/A2/2.33.htm

投稿
非常不爽,删了吧! 相关词条:其他  IMUL 累加器 指令