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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
好友圈
友情链接

[2009-11-19 17:30] 实验10第2题

2.解决除法溢出的问题
这个公式着实费了番脑筋,int(H/N),是结果的高16位,后面第二个除法得到的结果,是X/N的第16位和余数。

程序如下:
        assume  cs:code
code    segment
start:  mov     ax,4240h
        mov     dx,000fh
        mov     cx,0ah
        call    divdw
        mov     ax,4c00h
        int     21h

divdw:  mov     bx,ax        ;将数据低16位放bx暂存
        mov     ax,dx
        mov     dx,0
        div     cx        ;数据高16位除以除数
        push    ax        ;商,即为最终结果的高16位
        mov     ax,bx
        div     cx        ;高16位余数作为新的高16位、原低16位,除以除数
                        ;商即为最终结果的低16位
        mov     cx,dx        ;余数放cx
        pop     dx        ;高16位
        ret

code    ends
        end     start
评论次数(0)  |  浏览次数(564)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码