汇编网首页登录博客注册
mouse的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  我要做些我能做的事情,不能老是睡下去了!
  • 『姓名』:;-)               
  • 『性别』:男    『发送消息
  • 个人说明:我的小老鼠;-)
  • 详细信息『加为好友』
学习动态

[2007-12-18 20:25] 第十章实验十---------除法子程序

图片载入中
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

assume cs:code 
code segment 
  start:
        mov ax,4240h        ;被除数低16位 
        mov dx,000fh    ;被除数高16位 
        mov cx,0ah      ;除数 
        call divdw      ;调用子程序divdw 
        mov ax,4c00h  
        int 21h 
  divdw:                  
        push si 
        push di
        
        mov di,ax      ;将低16位ax暂存于bx  
        mov ax,dx      ;将高16位进行除法运算 
        mov dx,0          
        div cx 
        mov si,ax      ;将int(H/N)暂存于si
        
        mov ax,di      ;把低16位除法转换,此时dx存放的是高十六位除法时的余数 
        div cx          
        mov cx,dx      ;将最终余数给cx    
        mov dx,si      ;将结果高16位传dx,第十六位的除法商默认在ax中      
        
        pop di
        pop si 
        ret 
code ends 
end start
评论次数(2)  |  浏览次数(672)  |  类型(汇编作业) |  收藏此文  | 

[  happy   发表于  2007-12-18 20:58  ]

嗯,思路清晰!

[  Wednesday   发表于  2007-12-18 21:41  ]

divdw

如果更加合理的利用栈保存数据,还能精简指令滴!

不妨试一下。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码