本文參考了馬維華老師的《微機原理與接口技術》一書
?
指令格式:
MUL????REG/MEM??? ;REG寄存器,MEM存儲器
IMUL?? REG/MEM
?
??? MUL和IMUL指令分別用于實現無符號數的乘法和有符號數的乘法運算。都只有一個源操作數,可以使寄存器或存儲器,而且目標操作數隱含規定在累加器中。
?
1)MUL指令
??? (a)、字節乘法,則AL×REG8/MEM8,乘積存于AX中。
????(b)、字乘法,則AX×REG16/MEM16,乘積的高16位存放在DX中,低16位存放在AX中。
??? (c)、32位乘法,則EAX×REG32/MEM32,乘積的高32位存放在EDX中,低32位存放在EAX中。
??? (d)、64位乘法,則RAX×REG64/MEM64,乘積的高64位存放在RDX中,低64位存放在RAX中。
??? 當乘積的高半部分(AH、DX、EDX、RDX)中存有結果的有效數字,則CF=OF=1,否則CF=OF=0。
?
2)IMUL指令
??? IMUL指令除了是完成兩個有符號數的相乘以外,其他與MUL完全類似。
?
注:由于乘法指令為乘積保留了兩倍于原來操作數的存儲空間,因而不會出現溢出。