詳解組合語言中乘法指令 MUL IMUL

2021-08-10 17:49:46 字數 657 閱讀 8634

本文參考了馬維華老師的《微機原理與接**術》一書

指令格式:

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完全類似。

注:由於乘法指令為乘積保留了兩倍於原來運算元的儲存空間,因而不會出現溢位。

組合語言乘法和除法指令

乘法和除法指令 ia 32 處理器的乘法和除法指令需要區別無符號數和有符號數,並隱含便用丁 eax 和edx 暫存器。基本的乘法指令指出源運算元 reg mem 暫存器或儲存單元 隱含使用目的運算元,表3。若源運算元是8位數8 m8,al與其相乘得到16位積,存入ax中,若源運算元是 16 位數 r...

組合語言中xor指令 計算機組合語言

組合語言 雖然用機器語言編寫程式有很高的要求和許多不便,但編寫出來的程式執 行效率高,cpu嚴格按照程式設計師的要求去做,沒有多餘的額外操作。所以,在保留 程式執行效率高 的前提下,人們就開始著手研究一種能大大改善 程式可讀性的程式設計方法。為了改善機器指令的可讀性,選用了一些能反映機器指令功能的單...

組合語言中xor指令 xor指令 ADC指令舉例

xor 表示異或操作1 xor 1 00 xor 0 01 xor 0 10 xor 1 1 所以xor cx,cx就相當於把cx各位置0 異或可以用來將數值取反。譬如10100011 xor 11111111的結果就是01011100。我是彙編新手剛剛學習彙編,今天剛好學到了彙編的xor指令。這個...