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

我的博客

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

[2011-09-29 20:13] 实验七

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

stack segment
        dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:        mov ax,data
        mov ds,ax

        mov ax,table
        mov es,ax
        
        mov ax,stack
        mov ss,ax
        mov sp,10h
        
        mov di,0
        mov bx,0
        mov bp,0
                
        mov cx,21
s:        push cx
        mov si,0
        mov dx,0
        
        mov cx,2
s1:        
        mov ax,ds:[di]
        mov es:[si+bx],ax

        mov ax,ds:[di+84]
        mov es:[si+5+bx],ax
                
        sub si,dx
        mov al,ds:[bp+168]
        mov es:[si+0ah+bx],al
        
        add di,2
        inc bp
        inc si
        inc dx
        add si,dx
        loop s1
        
        push dx
        mov ax,es:[1+bx+si]
        mov dx,es:[3+bx+si]
        div word ptr es:[bx+si+6]
        mov es:[bx+si+9],ax
        pop dx
        
        add bx,16
        pop cx
        loop s

        mov ax,4c00h
        int 21h

code ends
end start

-d es:0
1459:0000  31 39 37 35 20 10 00 00-00 20 03 00 20 05 00 20   1975 .... .. ..
1459:0010  31 39 37 36 20 16 00 00-00 20 07 00 20 03 00 20   1976 .... .. ..
1459:0020  31 39 37 37 20 7E 01 00-00 20 09 00 20 2A 00 20   1977 ~... .. *.
1459:0030  31 39 37 38 20 4C 05 00-00 20 0D 00 20 68 00 20   1978 L... .. h.
1459:0040  31 39 37 39 20 56 09 00-00 20 1C 00 20 55 00 20   1979 V... .. U.
1459:0050  31 39 38 30 20 40 1F 00-00 20 26 00 20 D2 00 20   1980 @... &. ..
1459:0060  31 39 38 31 20 80 3E 00-00 20 82 00 20 7B 00 20   1981 .>.. .. {.
1459:0070  31 39 38 32 20 A6 5F 00-00 20 DC 00 20 6F 00 20   1982 ._.. .. o.
-d
1459:0080  31 39 38 33 20 91 C3 00-00 20 DC 01 20 69 00 20   1983 .... .. i.
1459:0090  31 39 38 34 20 C7 7C 01-00 20 0A 03 20 7D 00 20   1984 .|.. .. }.
1459:00A0  31 39 38 35 20 81 24 02-00 20 E9 03 20 8C 00 20   1985 .$.. .. ..
1459:00B0  31 39 38 36 20 8A 03 03-00 20 A2 05 20 88 00 20   1986 .... .. ..
1459:00C0  31 39 38 37 20 7C 47 05-00 20 D2 08 20 99 00 20   1987 |G.. .. ..
1459:00D0  31 39 38 38 20 EB 03 09-00 20 E9 0A 20 D3 00 20   1988 .... .. ..
1459:00E0  31 39 38 39 20 CA 42 0C-00 20 C5 0F 20 C7 00 20   1989 .B.. .. ..
1459:00F0  31 39 39 30 20 18 0D 12-00 20 03 16 20 D1 00 20   1990 .... .. ..
-d
1459:0100  31 39 39 31 20 38 1F 1C-00 20 22 20 20 E0 00 20   1991 8... "  ..
1459:0110  31 39 39 32 20 58 19 2A-00 20 16 2D 20 EF 00 20   1992 X.*. .- ..
1459:0120  31 39 39 33 20 28 44 39-00 20 5E 38 20 04 01 20   1993 (D9. ^8 ..
1459:0130  31 39 39 34 20 28 F0 46-00 20 99 3B 20 30 01 20   1994 (.F. .; 0.
1459:0140  31 39 39 35 20 68 97 5A-00 20 88 45 20 4D 01 20   1995 h.Z. .E M.
评论次数(2)  |  浏览次数(372)  |  类型(汇编作业) |  收藏此文  | 

[  nbfengyi   发表于  2011-09-29 20:20  ]

用了一整个下午写这个程序,一开始就想到了循环,开始想外循环必有一次,内循环有4字节和2字节的,是不要用两个,后来想4字节的可以当两个字处理,这样一个循环,就可以同时弄好了,可后来总在数据的定位上出错。最后不得已加了一个寄存器。现在终于写完了,回想,内循环两次,直接写出来其实也可以,不费事的。刚交作业看了一位同志用栈写的,程序。赞一个,思想太重要了

[  chinatree   发表于  2011-09-29 21:00  ]

写出来就行了,不用太纠结。

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