彙編小程式之除法溢位處理

2021-09-01 12:38:31 字數 843 閱讀 9393

本文借鑑了同學的部落格,但是個人認為他寫的不夠詳細,所以自己新增了許多注釋

;功能:進行不會產生溢位的除法運算,

; 被除數為dword型,除數為word型

; 結果為dword型

;引數:(ax) = dword 型資料的低16位

; (dx) = dword 型資料的高16位

; (cx) = 除數

;返回:(dx) = 結果的高16位,(ax) = 結果的低16位,(cx)=餘數

; 在寫程式之前先回顧一下除法的運算

; 被除數為16位,除數為8位:被除數放在ax中

; 被除數為32位,除數為16位:被除數放在dx和ax

; 其中,dx存放高16位

; ax存放低16位

div_dw:

push bx

;暫時將低位被除數放在棧中

push ax

;處理高位除法

mov ax,dx

;因為是最高位,所以需要將ds置零

mov dx,0

div cx

;除法得的商在ax中,為高位商,暫時存放在bx中

;得的餘數放在ds中,不操作,需要作為低位資料的高位

mov bx,ax

;開始處理低位除法,在這裡ds中存放了

;上一次高位的餘數,作為本次低位除法的高位

pop ax

div cx

;最終的餘數放在cx中

mov cx,dx

;高位商放在dx中,低位商在ax中

mov dx,bx

pop bx

組合語言 內中斷 除法溢位處理

在組合語言中,中斷分為內中斷和外中斷。中斷的意思是指,cpu不再接著 剛執行完的指令 向下執行,而是轉去處理這個特殊資訊。除法錯誤 中斷型別碼0 單步執行 中斷型別碼1 執行into指令 中斷型別碼4 執行int指令 該指令的格式為int n,指指令中的n為位元組型立即數,是提供給cpu的中斷型別碼...

CSS 小結筆記之文字溢位處理

1 word break normal break all keep all normal 使用瀏覽器預設的換行 break all 允許單詞內換行即允許單詞拆開顯示 keep all 不允許拆開單詞顯示,連字元除外 這種方法只允許英文是使用,對中文無效。結果如下 2 white space nor...

組合語言中加減法運算的溢位處理

1.無符號數運算 只有相加才有可能溢位 以及小減大肯定溢位,大減小不會溢位 相加前在編碼前加個0,作為符號位.如果結果的符號為1,則溢位.舉例,12 7 19 溢位 01100 00111 10011 2.有符號數運算 兩個異號數相加或兩個同號數相減,其結果不會溢位 僅當兩個同號數相加或兩個異號數相...