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

我的博客

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

[2012-06-29 08:02] 实验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'
        ; 以上表示21个年份的字符串 0 - 83
        
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1184000,2759000,3753000,4649000,5937000
        ; 以上表示21个公司的收入状况   84 - 167
        
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800
        ; 以上表示21年公司雇员人数  168 - 209
data ends

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

code segment
start:        mov ax,data
                mov ds,ax          ; 设置数据段地址
                
                mov ax,table
                mov es,ax          ; 设置表格段地址
            
                mov bx,0           ; 设置索引为0
                mov si,0        ; 定位年份和收入
                mov cx,21        ; 设置循环次数
                mov di,0        ; 指向目标行号
                
s:                mov ax,[si]
                mov es:[di],ax
                mov ax,[si+2]
                mov es:[di + 2],ax        ; year  0 - 3
                
                mov byte ptr es:[di + 4],' '    ; 4
                
                mov ax,[si + 84]                
                mov es:[di + 5],ax  ; 收入
                mov ax,[si + 86]
                mov es:[di + 7],ax                        ;  5 - 8
                
                mov byte ptr es:[di + 9],' ' 
                 
                mov ax,[bx + 168]
                mov es:[di + 0aH],ax        ; 雇员数
                
                mov byte ptr es:[di + 0cH],' '
                
                mov dx,es:[di + 7]
                mov ax,es:[di + 5]
                mov bp, es:[di + 0aH]
                div bp                                        ; 计算雇员收入的平均数
                
                mov word ptr es:[0dH],ax        ; 雇员的平均收入
                
                mov byte ptr es:[0fh],' '
                
                add bx,2
                add di,16
                add si,4
                loop s
                
                mov ax,4c00H
                int 21H
code ends

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

[  fpamc   发表于  2012-06-29 10:17  ]

貌似排列出来的效果不好看。。。

[  assumechen   发表于  2012-06-29 11:13  ]

是指表格的格式吗?

[  fpamc   发表于  2012-06-29 13:42  ]

恩,就是显示出的效果。。
我目测的哈,可能不是那样的。。

[  assumechen   发表于  2012-06-29 14:45  ]

是程序错了,把这一句:
mov word ptr es:[0dH],ax       ; 雇员的平均收入 
改为就对了
mov word ptr es:[di+0dH],ax    ; 雇员的平均收入

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