80X86彙編 mul 乘法指令

2022-01-11 14:15:55 字數 804 閱讀 4675

使用 mul 做乘法的時候, 注意以下兩點:

格式如下:

mul reg

mul 記憶體單元

記憶體單元可以用不同的定址方式給出, 比如:

mul byte ptr ds:[0]
含義: (ax) = (al) * ((ds) * 16 + 0);

mul word ptr [bx+si+8]
含義: (ax) = (ax) * ((ds) * 16 + (bx) + (si) + 8) 的結果的低 16 位.

(dx) = (ax) * ((ds) * 16 + (bx) + (si) + 8) 的結果的高 16 位.

例:

(1) 計算 100 * 10.

100 和 10 小於 255, 可以做 8 位乘法, 程式如下.

mov al,100

mov bl,10

mul bl

結果: (ax) = 1000(03e8h)

(2) 計算 100 * 10000

100 小於 255, 可 10000 大於 255, 所以必須做 16 位乘法, 程式如下.

mov ax,100

mov bx,10000

mul bx

結果: (ax) = 4240h, (dx) = 000fh    (f4240h = 1000000)

參考: 節選自王爽組合語言

80x86彙編常用指令

一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...

彙編 mul乘法指令

兩個相乘數,要麼都是8位,要麼都是16位。8位乘法,16位乘法。如果是8位,乙個數字預設存放在al中,另外乙個數字存放在其他8位暫存器中或者位元組型記憶體單元中。mul 8位暫存器 結果存放在ax中 mul byte ptr ds 0 結果存放在ax中 如果是16位,乙個數字預設存放在ax中,另外乙...

80X86學習筆記 轉移指令

無條件段內直接轉移指令格式 jmp 標號 使控制無條件的轉移到標號位址。例 next mov ax,cx jmp next jmp over over mov ax,1 在執行無條件段內轉移指令時,實際操作是把指令中的位址差加到指令指標ip上,使ip內容為目標位址,從而達到轉移目的。段內無條件直接轉...