1 assume cs:code23
code segment
4start:
5mov
ax, 4240h
6mov
dx, 000fh
7mov
cx, 0ah89
call
divdw
1011
movax, 4c00h
12int
21h1314;
名稱:divdw15;
功能:進行不會產生溢位的除法運算,被除數為dword型,除數為word型號,結果為dword型號16;
引數:(ax)=dword型資料的低16位17;
(dx)=dword型資料的高16位18;
(cx)=除數19;
返回:(dx)=結果的高16位,(ax)=結果的低16位20;
(cx)=餘數
21divdw:
;子程式定義開始
22push ax ;
低16位先儲存
2324
mov ax, dx ;
ax值為高16為
2526
mov dx, 0
;dx置零
27div cx ;
h/n28
29mov bx, ax ;
ax,bx的值(int)h/n,dx的值為(rem)h/n
3031
pop ax ;
處理低16位
32div cx ;
高16位:dx的值為(rem)h/n,低16位:ax
3334
movcx, dx
35mov
dx, bx
3637
ret38
code ends
39 end start
組合語言除法公式溢位問題
當且僅當 h 高16位 n 1 時 才不會溢位 即 h 65536 n l n 65535 商 n 1 餘數 0ffffh 65536 通俗的講就是高16位不能大於等於除數 n 1 65536 n l n 65534 n n 1 65536 l 65534 n n n 65536n 65536 l ...
解決除法溢位問題
王爽組合語言第二版實驗10.2 一 實驗要求 當用div指令進行8位除法運算時結果大於8位,或進行16位除法運算結果大於16位時,會出現除法溢位的錯誤。要求編寫乙個子程式,實現支援結果不會出現溢位的除法運算 二 演算法概述 通過乙個公式將可能產生溢位的運算x n,轉變為多個不會產生溢位的除法運算。公...
組合語言實驗10 解決除法溢位
實驗二 解決除法溢位 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 被除數低位 mo...