MUL指令是彙編語言中用於執行乘法運算的指令。它可以將兩個運算元相乘,並將結果存儲在指定的暫存器或記憶體地址中。MUL指令分為無符號乘法(MUL)和有符號乘法(IMUL)。以下是詳細介紹:
無符號乘法(MUL)。當執行無符號乘法時,如果兩個8位二進制數的乘積不超過16位,乘積的高16位存放在DX暫存器中,而低16位存放在AX暫存器中。如果DX暫存器中的值不為零,則進位標誌位被設定。
有符號乘法(IMUL)。有符號乘法會保留乘積的符號。在x86指令集中,IMUL支持單運算元、雙運算元和三運算元格式,而MUL指令只有單運算元格式。
在執行8位乘法時,一個運算元默認放在AL暫存器中,另一個放在8位暫存器或記憶體位元組單元中。如果是16位乘法,則一個運算元默認放在AX暫存器中,另一個放在16位暫存器或記憶體字單元中。8位乘法的結果默認放在AX暫存器中,而16位乘法的結果中,高位默認放在DX暫存器中,低位放在AX暫存器中。