1 assume cs:code
2
3 code segment
4 start:
5 mov ax, 4240h
6 mov dx, 000fh
7 mov cx, 0ah
8
9 call divdw
10
11 mov ax, 4c00h
12 int 21h
13
14 ; 名称:divdw
15 ; 功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型号,结果为dword型号
16 ; 参数:(ax)=dword型数据的低16位
17 ; (dx)=dword型数据的高16位
18 ; (cx)=除数
19 ; 返回:(dx)=结果的高16位,(ax)=结果的低16位
20 ; (cx)=余数
21 divdw: ; 子程序定义开始
22 push ax ; 低16位先保存
23
24 mov ax, dx ; ax值为高16为
25
26 mov dx, 0 ; dx置零
27 div cx ; H/N
28
29 mov bx, ax ; ax,bx的值(int)H/N,dx的值为(rem)H/N
30
31 pop ax ; 处理低16位
32 div cx ; 高16位:dx的值为(rem)H/N,低16位:ax
33
34 mov cx, dx
35 mov dx, bx
36
37 ret
38 code ends
39 end start