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

我的博客

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

[2009-06-28 19:18] 实验7  为什么结果是这样的呢?如图示

图片载入中
assume cs:code,ds:data 

data segment 
  db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 
  db '1984','1985','1986','1987','1988','1989','1990','1991','1992' 
  db '1993','1994','1995' 
  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 
  dd 345980,590827,803530,1183000,1843000,2759000,3753000,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 

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

code segment 
start: 
  mov ax,data 
  mov ds,ax 
  mov ax,table 
  mov es,ax 

  mov si,0 
  mov di,0 
  mov bx,0 
  mov cx,21 

s:mov ax,[si] 
  mov dx,[si+2] 
  mov es:[di],ax 
  mov es:[di+2],dx
  mov al,' '
  mov es:[di+4],al       ;年份

  mov ax,[si+84] 
  mov dx,[si+86] 
  mov es:[di+5],ax 
  mov es:[di+7],dx
  mov al,' '
  mov es:[di+9],al       ;收入 

  div word ptr [bx+168] 
  mov es:[di+13],ax 
  mov al,' '
  mov es:[di+15],al    ;人均收入   

  mov ax,[bx+168] 
  mov es:[di+10],ax
  mov al,' '
  mov es:[di+12],al   ;雇员 

  add bx,2 
  add si,4 
  add di,16 
  loop s 

  mov ax,4c00h 
  int 21h 
code ends 
end start
评论次数(4)  |  浏览次数(679)  |  类型(汇编作业) |  收藏此文  | 

[  游客   发表于  2009-06-29 10:29  ]

博主的雇员数有问题,再调试调试吧

[  jmuguy   发表于  2009-06-29 12:55  ]

改过来了,可是结果为什么还是无法显示收入、雇员数。。

[  younggay   发表于  2009-06-29 13:14  ]

改过来了,可是结果为什么还是无法显示收入、雇员数。。
============
收入和雇员数是不会以字符形式显示出来的,你只能去看对应的内存中的数据的大小是不是正确。
我运行了你的程序,deubg下显示部分结果如下
-d es:0
1446:0000  31 39 37 35 20 10 00 00-00 20 03 00 20 0A 00 20   1975 .... .. ..
1446:0010  31 39 37 36 20 16 00 00-00 20 07 00 20 04 00 20   1976 .... .. ..
1446:0020  31 39 37 37 20 7E 01 00-00 20 09 00 20 20 00 20   1977 ~... ..  .
其中内存中0~3是年分,5~8是收入,10~11是雇员数,对应的数据和你定义的数据比对一下,都一样说明就是对的。
只有存入的是数据对应ascii码才会显示出正确的字符的。

[  jmuguy   发表于  2009-06-29 13:18  ]

谢谢你的指导。。。

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