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

我的博客

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

[2010-04-08 09:55] 课程设计1.NEW

图片载入中
所有程序中,我写的最烂的就是这个课程设计1了,烂到自己都看不下去了,昨天看到坛子上有位兄弟的课程设计1,给了我启发,以前我太执着于实验7了,非要用实验7的程序硬套。

于是今天抽空重新写了一个,这次仅仅使用了20多分钟就写好了。
下面程序有些寄存器与代码纯粹多余,写完之后也懒的修改了。

assume cs:code
code segment
ss1:    db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
        db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
        db '1993','1994','1995'

ss2:    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

ss3:    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800

start:  mov ax,cs
        mov ds,ax
        mov si,offset ss1

        mov ax,0b800h
        mov es,ax
        mov bp,2*160+23*2
        mov di,0
        mov bx,0

        mov cx,21

s:      mov ax,[si]
        mov byte ptr es:[bp+di],al
        mov byte ptr es:[bp+di+2],ah
        add si,2
        mov ax,[si]
        add di,4
        mov byte ptr es:[bp+di],al
        mov byte ptr es:[bp+di+2],ah
        add bp,160
        mov di,0
        add si,2
        loop s

        mov si,offset ss2
        mov di,0
        mov bp,2*160+33*2

        mov cx,21
s1:     mov ax,[si]
        mov dx,[si+2]
        call dtoc
        add si,4
        add bp,160
        loop s1

        mov si,offset ss3
        mov di,0
        mov bp,2*160+43*2

        mov cx,21
s2:     mov ax,[si]
        sub dx,dx
        call dtoc
        add si,2
        add bp,160
        loop s2

        mov bp,2*160+53*2
        mov di,0
        mov si,offset ss3
        mov bx,offset ss2

        mov cx,21
s3:     mov ax,[bx]
        mov dx,[bx+2]
        div word ptr [si]
        sub dx,dx
        call dtoc
        add bx,4
        add si,2
        add bp,160
        loop s3
        
        mov ax,4c00h
        int 21h


dtoc:           push ax 
                push si 
                push cx 
                push bx 
                push dx 

                mov bx,10 

                push ax 
                push dx 

dtoc_s1:        mov cx,ax 
                mov ax,dx 
                mov dx,0 
                div bx 

                push ax 

                mov ax,cx 
                div bx 
                pop dx 

                mov cx,dx 
                add cx,ax 
                jcxz dtoc_s2 
                add di,2 
                jmp dtoc_s1 

dtoc_s2:        pop dx 
                pop ax 

dtoc_s3:        mov cx,ax 
                mov ax,dx 
                mov dx,0 
                div bx 
                push ax 
                mov ax,cx 
                div bx 
                add dx,30h 
                mov byte ptr es:[bp+di],dl 
                pop dx 
                mov cx,dx 
                add cx,ax 
                jcxz dtoc_ok 
                sub di,2
                jmp dtoc_s3 

dtoc_ok:        pop dx 
                pop bx 
                pop cx 
                pop si 
                pop ax 
                ret 
code ends
end start
评论次数(0)  |  浏览次数(616)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码