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

我的博客

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

[2008-12-03 22:23] 实验7

图片载入中
我觉得这个程序要编好,对结构化数据的认识很重要,我原先没有很好了解,结果编的错误百出, 今天从新读了下课本,有了些收获。

assume cs:codesg

data segment
     db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983'
     db '1984', '1985', '1986', '1987', '1988', '1989', '1900', '1991', '1992'
     db '1993', '1994', '1995'

        

     dd 16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
     dd 345980, 590827, 803530, 1182000, 1843000, 2759000, 3759000, 4649000, 5937000
        

     dw 3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442, 2258, 2793, 4037, 5635, 8226
     dw 11542, 14430, 15257, 17800
        

data ends


stack segment
    dw 0, 0, 0, 0, 0, 0, 0, 0
stack ends


table segment
     db 21 dup ('year summ ne ?? ')
table ends


codesg segment
     
start: mov ax, data
       mov ds, ax
       mov dx, 0
       mov di, 0

       mov ax, stack
       mov ss, ax
       mov sp, 10h

       mov ax, table 
       mov es, ax
       mov bp, 0

       mov cx, 21
    s: push cx
       mov cx, 4
       mov si, 0

   s0: mov al, [bx+si]
       mov es:[bp+si], al
       inc si
       loop s0

       mov ax, [bx+84]
       mov es:[bp+5], ax
       mov dx, [bx+86]
       mov es:[bp+7], dx
       
       div word ptr [di+756]
       mov es:[bp+14], ax

       mov ax, [di+756]
       mov es:[bp+10], ax

       pop cx
       add bx, 4
       add di, 2
       add bp, 10h
       loop s

       mov ax, 4c00h
       int 21h

codesg ends

end start
评论次数(5)  |  浏览次数(1024)  |  类型(汇编作业) |  收藏此文  | 

[  crazyman   发表于  2008-12-08 15:42  ]

程序运行有“除法溢出”的错误提示,博主看看是不是程序中某些地方有不合适的啊。
不过,博主的说法我很赞同:我觉得这个程序要编好,对结构化数据的认识很重要,我原先没有很好了解,结果编的错误百出, 今天从新读了下课本,有了些收获。

[  crazyman   发表于  2008-12-08 15:45  ]

在第一次div word ptr [di+756] 的时候好像就出异常了。博主debug一下把。

[  pascale   发表于  2008-12-09 12:56  ]

好我看看。

[  pascale   发表于  2008-12-09 13:09  ]

我刚debug的一下 并无溢出。我把图片发一下。

[  pascale   发表于  2008-12-09 13:21  ]

5937000/17800的十六为是14d  两个字节可以放下的呀。

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