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

我的博客

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

[2013-08-11 18:53] 课程设计1

图片载入中
assume cs:code

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

buf segment
        db 160 dup (0)
buf ends

code segment
        start:mov ax,data
        mov es,ax
        mov ax,buf
        mov ds,ax
        mov si,0
        mov cl,7
        
        ;显示年份
        mov dx,0303H
        mov di,0
        mov cx,21
        yr:push cx
        mov bp,0
        mov ax,es:[di]
        mov ds:[bp],ax
        add di,2
        add bp,2
        mov ax,es:[di]
        mov ds:[bp],ax
        mov cl,7
        call show_str
        add di,2
        add bp,2
        inc dh
        pop cx
        loop yr
        
        ;显示总工资
        mov dx,030bH
        mov cx,21
        sum:push cx
        push dx
        mov ax,es:[di]
        add di,2
        mov dx,es:[di]
        add di,2
        call dtoc
        mov cl,7
        pop dx
        call show_str
        inc dh
        pop cx
        loop sum
        
        ;显示人数
        mov dx,0316H
        mov cx,21
        num:push cx
        push dx
        mov ax,es:[di]
        mov dx,0
        add di,2
        call dtoc
        mov cl,7
        pop dx
        call show_str
        inc dh
        pop cx
        loop num
        
        ;显示平均工资
        sub di,42
        mov bp,di
        sub di,84
        mov dx,031fH
        mov cx,21
        avg:push cx
        push dx
        mov ax,es:[di]
        add di,2
        mov dx,es:[di]
        add di,2
        mov cx,es:[bp]
        add bp,2
        call divdw
        call dtoc
        mov cl,7
        pop dx
        call show_str
        inc dh
        pop cx
        loop avg
        
        stop:jmp stop
        
        mov ax,4c00h
        int 21h
        
        show_str:push bp
        push si
        push es
        push ax
        push bx
        push cx
        mov ax,0b800h
        mov es,ax
        mov al,160
        mul dh
        mov bl,dl
        mov bh,0
        add bl,bl
        add bx,ax
        mov bp,sp
        show_str_again:mov cx,0
        mov cl,[si]
        jcxz show_str_ok
        mov es:[bx],cl
        inc bx
        mov al,[bp]
        mov es:[bx],al
        inc bx
        inc si
        jmp show_str_again
        show_str_ok:pop cx
        pop bx
        pop ax
        pop es
        pop si
        pop bp
        ret

        dtoc:push ax
        push cx
        push si
        push dx
        push di
        mov di,1
        dtoc_positive:mov cx,10
        call divdw
        add cx,30H
        push cx
        mov cx,ax
        or cx,dx
        jcxz dtoc_ret
        inc di
        jmp dtoc_positive
        dtoc_ret:mov cx,di
        dtoc_store:pop dx
        mov [si],dl
        inc si
        loop dtoc_store
        mov byte ptr [si],0
        pop di
        pop dx
        pop si
        pop cx
        pop ax
        ret
        
        divdw:push bx
        mov bx,ax        ;低16位在bx
        mov ax,dx
        mov dx,0
        div cx
        push ax                ;存储结果
        mov ax,bx        ;低16位在ax
        div cx
        mov bx,dx        ;余数在bx
        pop dx
        mov cx,bx
        pop bx
        ret
code ends
end start
评论次数(1)  |  浏览次数(451)  |  类型(汇编作业) |  收藏此文  | 

[  cutebe   发表于  2013-08-13 10:44  ]

恭喜了,七夕快乐!

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