进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
assume cs:codecode segment
start:
mov ax,4240h ;被除数低16位
mov dx,0fh ;被除数高16位
mov cx,0ah ;除数
;调用除法子程序
call divdw
mov ax,4c00h
int 21h
;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
;参数:ax = dword型数据的低16位,dx高16位
;返回:dx = 结果的高16位,ax = 低16位,cx = 余数
divdw:
push bx
;首先高16除以除数,保存低16位
push ax
mov ax,dx
mov dx,0 ;清空dx
div cx
mov bx,ax ;ax为高16的商
pop ax ;还原低16位数据,dx现在保存高16位的余数
div cx
mov cx,dx ;dx为余数
mov dx,bx ;bx先前保存的是高位商,ax不变继续保存低16的商
pop bx ;还原修改的bx的值
ret
code ends
end start
孩子奉劝你一句这么简单的 的问题还拿出来问。。你还是回去多看看书在来吧。:titter::titter::titter:
页:
[1]