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

我的博客

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

[2009-05-03 21:47] 实验7

assume cs:codesg
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,2579000,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
 codesg segment
 start: ;初始化 ↓
        mov ax,data
        mov ds,ax
        mov ax,table
        mov es,ax
        mov bx,0
        mov si,0
        mov di,0
        mov cx,21
     s0:;复制年份 ↓
        mov ax,ds:[di]
        mov es:[bx].0,ax
        mov ax,[di+2]
        mov es:[bx+2],ax
        ;复制收入 ↓
        mov ax,84[di]
        mov es:[bx+5],ax
        mov ax,86[di]
        mov es:[bx+7],ax
        ;复制雇员 ↓
        mov ax,ds:168[si]
        mov es:[bx+10],ax
        ;计算人均收入 ↓
        mov ax,es:[bx+5]
        mov dx,es:[bx+7]
        div word ptr es:[bx+10]
        mov es:[bx+13],ax
        
        add si,2
        add di,4
        add bx,16
        loop s0
        mov ax,4c00h
        int 21h
codesg ends
end start
        
        loop s0
        mov ax,4c00h
        int 21h
codesg ends
end start
-----------------------------------------------------
程序我觉得应该写对了,但是debug得结果并不是要求的结果啊:
-d es:0
0B63:0000  31 39 37 35 20 10 00 00-00 20 03 00 20 05 00 20   1975 .... .. ..
0B63:0010  31 39 37 36 20 16 00 00-00 20 07 00 20 03 00 20   1976 .... .. ..
0B63:0020  31 39 37 37 20 7E 01 00-00 20 09 00 20 2A 00 20   1977 ~... .. *.
0B63:0030  31 39 37 38 20 4C 05 00-00 20 0D 00 20 68 00 20   1978 L... .. h.
0B63:0040  31 39 37 39 20 56 09 00-00 20 1C 00 20 55 00 20   1979 V... .. U.
0B63:0050  31 39 38 30 20 40 1F 00-00 20 26 00 20 D2 00 20   1980 @... &. ..
0B63:0060  31 39 38 31 20 80 3E 00-00 20 82 00 20 7B 00 20   1981 .>.. .. {.
0B63:0070  31 39 38 32 20 A6 5F 00-00 20 DC 00 20 6F 00 20   1982 ._.. .. o.
我刚开始以为是我的程序写错了!但我看了看当把data的数据放到ds段的时候debug一下:
-d ds:0
0B55:0000  31 39 37 35 31 39 37 36-31 39 37 37 31 39 37 38   1975197619771978
0B55:0010  31 39 37 39 31 39 38 30-31 39 38 31 31 39 38 32   1979198019811982
0B55:0020  31 39 38 33 31 39 38 34-31 39 38 35 31 39 38 36   1983198419851986
0B55:0030  31 39 38 37 31 39 38 38-31 39 38 39 31 39 39 30   1987198819891990
0B55:0040  31 39 39 31 31 39 39 32-31 39 39 33 31 39 39 34   1991199219931994
0B55:0050  31 39 39 35 10 00 00 00-16 00 00 00 7E 01 00 00   1995........~...
0B55:0060  4C 05 00 00 56 09 00 00-40 1F 00 00 80 3E 00 00   L...V...@....>..
0B55:0070  A6 5F 00 00 91 C3 00 00-C7 7C 01 00 81 24 02 00   ._.......|...$..
后面面的数据怎么没放到数据段里面?我漏看了那个知识点?
评论次数(2)  |  浏览次数(894)  |  类型(汇编作业) |  收藏此文  | 

[  tomato   发表于  2009-05-04 10:49  ]

很正确,而且也很清晰。后面的数据不是放进去了吗?你为什么认为没有放进去?

[  q2719833   发表于  2009-05-04 12:06  ]

哦 明白了!谢谢tomato!我都当字节看了。晕!

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