汇编程序34:实验10 编写子程序(一)

 1 assume cs:code
 2 //做两次32位/16位的除法即可
 3 code segment
 4     start:
 5       mov ax,3456h
 6       mov dx,0012h
 7       mov cx,0ah
 8       call divdw
 9       mov ax,4c00h
10       int 21h
11     divdw:
12           push ax
13   routine:
14           mov ax,dx
15           mov dx,0 //第一次除法可以确保不溢出因为是原数高位做第一次被除数的低位,而被除数高位置0
16           div cx 
17           mov bx,ax //保留结果高位dx值,即第一结果的商,它的余作为第二次除法高位,原数低位作为第二次除法低位,同样不会溢出
18           pop ax //低位ax值
19           div cx //第二次除法的余作为结果的余,商作为结果低位ax值
20           mov cx,dx
21           mov dx,bx
22        ok:
23           ret
24 code ends
25 
26 end start

 

posted on 2018-01-30 22:45  叶倾仙  阅读(127)  评论(0编辑  收藏  举报

导航