实验10(2)
本帖最后由 雪球丶 于 2020-3-17 16:30 编辑assume cs:code
code segment
start:
mov ax,4240H
mov dx,000FH
mov cx,0AH
call divdw
mov ax,4c00h
int 21h
;子程序,被除数为dword型,除数为word型,结果为dword型
;输入参数:
; (ax)=dword型数据的低16位
; (dx)=dowrd型数据的高16位
; (cx)=除数
;返回值:
; (dx)=结果的高16位,(ax)=结果的低16位
; (cx)=余数
;32位除法所需的寄存器:DX被除数的高16位,AX被除数的低16位,reg,除数(这里是cx)结果:AX商,DX余数
divdw:
mov si,ax ;低16位暂存在si中
;计算高16位,将16位计算转化为32位计算
mov ax,dx
mov dx,0
div cx
mov bx,ax ;H/N存放在BX中
;计算低16位
mov ax,si
div cx
mov cx,dx
mov dx,bx
ret
code ends
end start
页:
[1]