|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
试了一下,可以运行,但是自己还是有一些疑问,需要看书慢慢消化。
- assume cs:codesg,ds:data,es:table
- 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'
- ; data:
- dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
- dd 345980,590827,803530,1183000,1843000,2759000,3753000,5659000,5937000
- dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635
- dw 8226,11542,14430,15257,17800
- data ends
- table segment
- db 21 dup ('year summ ne ?? ')
- table ends
- codesg segment
- start:
- mov ax,data
- mov ds,ax
- mov ax,table
- mov es,ax
- mov bx,0
- mov bp,0
- mov di,0
- mov cx,21
-
- s0:
- push cx
- mov si,0
- mov cx,4
- s1:
- mov al,ds:[bx+si]
- mov es:[bp+0+si],al
-
- inc si
- loop s1
- ; 上面的小循环是将年份的四个字符分别输入进去
- mov ax,ds:[168+di]
- mov es:[bp+10],ax
- ; 上面的语句是将雇员人数输入至数据中
- mov ax,ds:[84+bx]
- mov es:[bp+5+0],ax
- mov dx,ds:[86+bx]
- mov es:[bp+7+0],dx
- ; 上面的语句是将收入输入至数据中, 将收入与雇员顺序进行颠倒的原因在于在下面除法的过程中,由于数据超过65535,要用到AX、DX,因此顺序颠倒能使语句减少。
- div word ptr es:[bp+10]
- mov es:[bp+13],ax
- ; 得出人均收入
-
- add di,2
- add bx,4
- add bp,16
- pop cx
- loop s0
-
-
- mov ax,4c00h
- int 21h
-
-
-
- codesg ends
- end start
复制代码 |
|