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

我的博客

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

[2010-04-29 23:03] 第十章 课程设计一

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 
table segment 
db 21 dup('year summ ne ?? ') 
table ends 
temp segment
db 100 dup(0)
temp ends

code segment 
start:  mov ax,table 
        mov es,ax 
        mov ax,data 
        mov ds,ax 
        mov bx,0 
        mov bp,0 
        mov cx,21 
     s0:mov ax,[bx] 
        mov word ptr es:[bp],ax 
        mov ax,[bx+2] 
        mov word ptr es:[bp+2],ax 
        add bx,4 
        add bp,10H 
        loop s0 

        mov cx,21 
        mov bp,0 
     s1:mov ax,[bx] 
        mov word ptr es:[bp+5],ax 
        mov ax,[bx+2] 
        mov word ptr es:[bp+7],ax 
        add bx,4 
        add bp,10H 
        loop s1 

        mov cx,21 
        mov bp,0 
     s2:mov ax,[bx] 
        mov word ptr es:[bp+0AH],ax 
        add bx,2 
        add bp,10H 
        loop s2 

        mov cx,21 
        mov bp,0 
     s3:push cx
        mov ax,es:[bp+5] 
        mov dx,es:[bp+7] 
        mov cx,es:[bp+0aH] 
        call divdw
        mov word ptr es:[bp+0cH],ax
        mov word ptr es:[bp+0eH],dx 
        add bp,10H 
        pop cx
        loop s3 


        mov cx,21
        mov ax,table
        mov es,ax
        mov ax,temp
        mov ds,ax
        mov bx,0
        mov di,0
show_all:                           push cx
                                mov ax,es:[bx]
                                mov ds:[0],ax
                                mov ax,es:[bx+2]
                                mov ds:[2],ax
                                mov byte ptr ds:[4],0
                                mov ax,di
                                mov dh,al
                                mov dl,0
                                mov cl,2
                                mov si,0
                                call show_str                                
                                mov ax,es:[bx+5]
                                mov dx,es:[bx+7]
                                mov si,0
                                call dtoc
                                mov ax,di
                                mov dh,al
                                mov dl,10
                                mov cl,2
                                call show_str
                                
                                mov ax,es:[bx+0aH]
                                mov dx,0
                                mov si,0
                                call dtoc
                                mov ax,di
                                mov dh,al
                                mov dl,30
                                mov cl,2
                                call show_str
                                
                                mov ax,es:[bx+0ch]
                                mov dx,es:[bx+0eh]
                                mov si,0
                                call dtoc
                                mov ax,di
                                mov dh,al
                                mov dl,50
                                mov cl,2
                                call show_str
                                                                
                                add bx,10H
                                inc di
                                pop cx
                                loop show_all

        mov ax,4c00h
        int 21h
show_str:       push ax  
                push cx  
                push si  
                push di  
                push es  
                push bp  
                mov ax,0B800h   
                mov es,ax  
                and ax,0  
                mov al,80  
                mul dh  
                mov dh,0  
                add ax,dx  
                add ax,ax  
                mov bp,ax  
                mov di,0  
                mov al,cl  
                mov ch,0  
           show:mov cl,ds:[si]  
                jcxz ok  
                mov es:[bp+di],cl  
                mov es:[bp+di+1],al  
                inc si  
                add di,2  
                jmp short show  
             ok:pop bp  
                pop es  
                pop di  
                pop si  
                pop cx  
                pop ax  
                ret  
 divdw: push bx 
        push ax 
        mov ax,dx 
        mov dx,0 
        div cx 
        mov bx,ax 
        pop ax 
        div cx 
        mov cx,dx 
        mov dx,bx         
        pop bx 
        ret 
   dtoc:push ax 
        push bx 
        push si 
        push cx 
        push dx 
        push di 
        mov cx,10 
        mov di,0 
     d0:call divdw 
        push cx 
        inc di 
        mov cx,ax 
        jcxz d1 
        mov cx,10 
        jmp short d0 
     d1:mov cx,di 
     d2:pop ax 
        dec cx 
        add ax,30H 
        mov ds:[si],ax 
        inc si 
        jcxz d3         
        jmp short d2 
     d3:pop di 
        pop dx 
        pop cx 
        pop si 
        pop bx 
        pop ax 
        ret 
code ends 
end start


第七章,写垃圾了,只能将就着先这样写着
评论次数(0)  |  浏览次数(482)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码