實驗二:解決除法溢位
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 功能 進行不會產生溢位的除法運算...