日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)

發(fā)布時間:2025/6/17 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。 本文鏈接:https://blog.csdn.net/m0_37564426/article/details/85563170 </div><!--一個博主專欄付費(fèi)入口--><!--一個博主專欄付費(fèi)入口結(jié)束--><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css"><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css"><div class="htmledit_views" id="content_views"><p class="cye-lm-tag">兩個相乘數(shù),要么都是8位,要么都是16位。 &nbsp; 8位乘法,16位乘法。</p>

如果是8位,一個數(shù)字默認(rèn)存放在al中,另外一個數(shù)字存放在其他8位寄存器中或者字節(jié)型內(nèi)存單元中。

mul 8位寄存器 ? ? ? ? ? ? ? ;結(jié)果存放在ax中

mul byte ptr ds:[0] ? ? ? ? ;結(jié)果存放在ax中

?

如果是16位,一個數(shù)字默認(rèn)存放在ax中,另外一個數(shù)字存放在其他16位寄存器中或者字型內(nèi)存單元中。

mul 16位寄存器 ? ? ? ? ? ? ;結(jié)果存放在dx, ax中

mul word ptr ds:[0] ? ? ? ?;結(jié)果存放在dx, ax中

?

結(jié)果: ?8位乘法,得到一個16位數(shù), ?結(jié)果存放在ax中

? ? ? ? ? 16位乘法,得到一個32位數(shù), ?低16位存放在ax中,高16位存放在dx中

注意:有時候雖然是字的乘法,但是已經(jīng)明確地知道乘積比較小,肯定不會大于2^16=65536,那么此時,雖然是字乘法,可能就用不到乘積的高16位(在dx中)了,而只是對乘積的低16位進(jìn)行處理(在ax中)。

?

  • assume cs:code, ds:data, ss:stack
  • data segment
  • dd 0
  • data ends
  • stack segment stack
  • db 128 dup(0)
  • stack ends
  • code segment
  • start: mov ax, stack
  • mov ss, ax
  • mov sp, 128
  • mov di, 0
  • call init_reg
  • mov bx, 5 ; 參數(shù)
  • call get_cube ; 對參數(shù)進(jìn)行處理
  • mov es:[di+0], ax ;call程序的返回值
  • mov es:[di+2], dx
  • mov ax, 4C00H
  • int 21H
  • ;================================ 切割邏輯
  • get_cube: push bx
  • mov ax, bx
  • mul bx
  • mul bx
  • pop bx
  • ret
  • ;=================================
  • init_reg: mov ax, data
  • mov ds, ax
  • mov es, ax
  • ret
  • code ends
  • end start
  • assume cs:code, ds:data, ss:stack
  • data segment
  • dw 11,22,33,44,55,66,77,88
  • dd 0,0,0,0,0,0,0,0
  • data ends
  • stack segment stack
  • db 128 dup(0)
  • stack ends
  • code segment
  • start: mov ax, stack
  • mov ss, ax
  • mov sp, 128
  • call init_reg
  • call number_cube
  • mov ax, 4C00H
  • int 21H
  • ;================================
  • number_cube:
  • mov cx, 8
  • mov si, 0
  • mov di, 16
  • cube: mov bx, ds:[si]
  • call get_cube
  • mov es:[di], ax
  • mov es:[di+2], dx
  • add si, 2
  • add di, 4
  • loop cube
  • ret
  • ;================================ 切割邏輯
  • get_cube: push bx
  • mov ax, bx
  • mul bx
  • mul bx
  • pop bx
  • ret
  • ;=================================
  • init_reg: mov ax, data
  • mov ds, ax
  • mov es, ax
  • ret
  • code ends
  • end start
  • ?

    總結(jié)

    以上是生活随笔為你收集整理的汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。