彙編65535除以16該如何實現

時間 2022-06-23 14:25:02

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...