汇编语言中的乘除法用到的寄存器问题(较详细解析)(用到AX和DX,乘数和除数用其他寄存器和存储器)
生活随笔
收集整理的這篇文章主要介紹了
汇编语言中的乘除法用到的寄存器问题(较详细解析)(用到AX和DX,乘数和除数用其他寄存器和存储器)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
匯編16位除法,默認被除數 DX-AX 商 AX 余數 DX,請問如何向AX-DX中傳遞被除數?
答:DX放高16位,AX放低16位
是32位除以16位的
下面計算100001/100
100001轉為十六進制 186A1H
mov dx,1
mov ax,86A1H; (dx)*10000H+(ax)=186A1H
mov bx,100
div bx;除數為bx,16位,所以進行的是32位除以16位的除法
運行結束后
(ax)=0eE8H(即1000)
(dx)=1(余數為1)
乘法:
書上寫:
當乘數位數為16位時,
其乘積的 存放位置為“DX:AX”(或者DX-AX),我所不明白的就是
這里的存放位置究竟是什么?是DX還是AX?
答:因為乘數是16位,那么結果可能是32位,DX存結果高位,AX存結果低位。乘數和被乘數都有可能是16位的,結果有可能是32位,那么就要把高16位的結果放到DX中,低16位的放到AX中。
部分整理來源于網絡
總結
以上是生活随笔為你收集整理的汇编语言中的乘除法用到的寄存器问题(较详细解析)(用到AX和DX,乘数和除数用其他寄存器和存储器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言中,DS与BX有何区别?怎么搭配
- 下一篇: 指令和伪指令的区别