組合語言實驗10 解決除法溢位

2021-10-20 23:42:39 字數 811 閱讀 7807

實驗二:解決除法溢位

assume cs:code, ss:stack

stack segment

dw 8

dup(0)

stack ends

code segment

start:

mov ax, stack ;初始化棧

mov ss, ax

mov sp,

16

mov ax,

0ffffh ;被除數低位

mov dx,

0ffffh ;被除數高位

mov bx,

1;除數

call div_ext ;呼叫除法

mov ax,

4c00h

int21h

div_ext:

push ax ;儲存被除數低位

mov ax, dx ;將高位移入ax

mov dx,

0;將高位置0

div bx ;計算int

(h/n)

, 得rem

(h/n)

=dx

pop cx ;將被除數低位取出

push ax ;儲存int

(h/n)的結果

mov ax, cx ;將被除數低位移入ax

div bx ;計算(

rem(h/n)

*65536

+l)/ n

mov cx, dx ;將餘數儲存到cx

pop dx ;將儲存的商的高位送入dx

ret

組合語言 實驗10 2 解決除法溢位的問題

寫給自己的一些題外話 因為各種各樣 考試,加上萎靡的精神狀態 的原因,在這一題卡了好幾天,就是搞不懂商和餘數的表示,直到今天才恍然大悟,下面我先總結一下div的用法,就當做自己的知識梳理了,我知道也沒有人會看。這是組合語言中的除法運算 格式為 div bx 有兩種運算模式 1.被除數是16位,除數是...

《組合語言》實驗 實驗

注意 db定義位元組型別變數,乙個位元組資料百佔1個位元組單度元,讀完乙個,偏移量加1 dw定義字型別變問量,乙個字資料佔2個位元組單元,讀完乙個,權偏移量加2 dd定義雙字型別變數版,乙個雙字資料佔4個位元組單元,讀完乙個,權偏移量加4 一開始用了乙個暫存器表示所有項,但是後來發現四個資料佔的位元...

使用組合語言解決除法溢位問題

1 assume cs code23 code segment 4start 5mov ax,4240h 6mov dx,000fh 7mov cx,0ah89 call divdw 1011 movax,4c00h 12int 21h1314 名稱 divdw15 功能 進行不會產生溢位的除法運算...