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

我的博客

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

[2011-10-21 19:46] 课程设计一

assume cs:code 
data segment
        db 10 dup (0)
        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
        dw 21 dup (0)
data ends

stack segment
        db 16 dup (0)
stack ends

code segment
start:        mov ax,data
        mov ds,ax
        mov bx,0
        mov si,0
        
        mov ax,0b800h
        mov es,ax

        mov ax,stack
        mov ss,ax
        mov sp,16
;求平均工资,写到数据的后面位置。
        mov cx,21
s:        mov ax,[bx+94]
        add bx,2
        mov dx,[bx+94]
        add bx,2
        div word ptr [si+178]
        mov [si+220],ax
        add si,2
        loop s
;将所有年份写到屏幕的第三列
        mov cx,21
        mov bx,0
        mov bp,2
s1:        push cx
        push bp

        mov cx,4
s2:        mov ah,7
        mov al,[bx+10]
        mov es:[bp],ax
        add bp,2
        inc bx
        loop s2
        pop bp
        pop cx
        add bp,160
        loop s1
;显示后面的总收入。
        mov bx,0
        mov dh,1
        mov dl,20
        mov cx,21
s3:
        push cx
        push dx
        mov si,1
        mov cx,0
        mov ax,[bx+94]
        push dx
        mov dx,[bx+96]
        call dtoc
        
        pop dx
        mov cl,7
        call show_str
        add bx,4
        pop dx
        pop cx
        inc dh
        loop s3
;显示雇员数。
        mov bx,0
        mov dh,1
        mov dl,40
        mov cx,21
s4:
        push cx
        push dx
        mov si,1
        mov cx,0
        mov ax,[bx+178]
        push dx
        mov dx,0
        call dtoc
        
        pop dx
        mov cl,7
        call show_str
        add bx,2
        pop dx
        pop cx
        inc dh
        loop s4
;显示人均收入。
        mov bx,0
        mov dh,1
        mov dl,60
        mov cx,21
s5:
        push cx
        push dx
        mov si,1
        mov cx,0
        mov ax,[bx+220]
        push dx
        mov dx,0
        call dtoc
        
        pop dx
        mov cl,7
        call show_str
        add bx,2
        pop dx
        pop cx
        inc dh
        loop s5

        mov ah,1
        int 21h
        mov ax,4c00h
        int 21h

dtoc:        push ax
        mov ax,dx
        mov dx,0
        mov bp,10
        div bp
        mov di,ax
        pop ax
        div bp
        add dl,30h
        mov [si],dl
        mov dx,di        
        add cx,dx
        add cx,ax
jcxz        ok1
        mov cx,0
        inc si
        jmp short dtoc
ok1:
        ret

show_str:
        push cx
        dec dh
        dec dl
        mov al,160
        mul dh
        mov di,ax
        mov al,2
        mul dl
        add di,ax

        mov ah,cl
s6:        mov al,[si]
        mov es:[di],ax
        mov cx,si
        jcxz ok2
        dec si
        add di,2
        jmp short s6
ok2:        pop cx
        ret
code ends
end start
评论次数(0)  |  浏览次数(419)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码