1樓:湯旺河邊
溢位的原因必然是暫存器dx的值不等於0,導致做完除法之後所得的商超出16位暫存器ax所能表示的範圍而產生溢位。因為除數bx是16位,預設的被除數在dx.ax中,dx為高位字,ax為低位字。
所以,在做除法之前,把dx暫存器清零,是非常必要的。
data segment
x dw 65535
data ends
code segment
assume cs:code,ds:datamain:
mov ax,data ;取資料段段址
mov ds,ax ;賦給資料段暫存器
mov ax,x ;取變數值
xor dx,dx ;被除數高位字清零,這一步很關鍵!
mov bx,16 ;除數
div bx ;無符號除法
mov ah,4ch ;結束程式
int 21h
code ends
end main
2樓:
上面程式未對資料段賦值,dx未清0.
方案一;65535÷16,debug 除錯正確
data segment
x dw 65535
data ends
code segment
assume cs:code,ds:datamain:
mov ax,data
mov ds,ax
mov ax,x
mov cl,4
shr ax,cl;ax←65535÷16mov ah,4ch
int 21h
code ends
end main
方案二;65535÷16,debug 除錯正確
data segment
x dw 65535
data ends
code segment
assume cs:code,ds:datamain:
mov ax,data
mov ds,ax
mov ax,x
mov dx,0
mov bp,16
div bp;ax←65535÷16
mov ah,4ch
int 21h
code ends
end main
16除以0 125簡便方法怎麼算
滾雪球的祕密 16除以0.125簡便運算過程如下 6 0.125 16 1 8 16 8 128 所以16除以0.125簡便運算的最後結果是128。 越答越離譜 16除以0.125簡便方法 16 0.125 16 1 8 16 8 128 擴充套件資料小學數學簡便方法歸納 1 提取公因式 這個方法實...
負16除以6等於多少,化分數,16 5除以6 5化為分數
負16除以 等於多少,化分數?16 6 16 6 8 3也就是負二又2 3。 16 6 8 3 16.5除以6.5化為分數 解 16.5 6.5 165 65 33 13 答 化簡為33 13. 武全 16.5除以6.5 165 65 33 13 2又7 13 zhao愛的滿全 16.5除以6.5化...
四十點六十四除以1 6等於多少豎式計算
來自白龍洞胸懷大志的大羽梅 我認為40.64 16等於豎式,應該用比算用豎式的形式進行計算,所以說這種形式是非常好的。 40點6 1點六等於我們在這短除法進行計算,得出這個世上結果 情投意合張老師 自己點64 1點六等於多少豎式計算都放到六個,具體分析情況一般來說。計算得一般差不 皮皮噔 40.64...