|
发表于 2012-4-17 17:44:53
|
显示全部楼层
本帖最后由 Y.H 于 2012-4-17 17:59 编辑
嗯,附上我写的,写的比较简单,没有用到循环嵌套,希望能帮你理清头绪
- 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,4549000,5937000
- ;21年来每一年的总收入
- dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
- dw 11542,14430,15257,17800
- ;21年来每一年的雇员
- data ends
- table segment
-
- db 21 dup ('year summ ne ?? ')
-
- table ends
- code segment
-
- start:
-
- mov ax,data
- mov ds,ax
-
- mov ax,table
- mov es,ax
-
- mov ax,0
- mov bx,0
- mov si,0
- mov di,0
-
-
- ;先把年份送入table段的前2个字中
- mov cx,21
- year:
- mov ax,ds:[si]
- mov es:[bx+di],ax
- add si,2
- add di,2
- mov ax,ds:[si]
- mov es:[bx+di],ax
- add si,2
- sub di,di
- add bx,10h
- loop year
-
-
-
-
-
- mov ax,0
- mov bx,0
- mov si,84
- mov di,0
- ;把收入送入table段的5,6,7,8字节中
- mov cx,21
- summ:
- mov ax,ds:[si]
- mov es:[bx+di+5h],ax
- add si,2
- add di,2
- mov ax,ds:[si]
- mov es:[bx+di+5h],ax
- add si,2
- mov di,0
- add bx,10h
- loop summ
-
-
-
-
- mov ax,0
- mov bx,0
- mov si,168
- ;把雇员人数送入table段的a,b字节中
- mov cx,21
- guyuan:
- mov ax,ds:[si]
- mov es:[bx+0ah],ax
- add si,2
- add bx,10h
- loop guyuan
-
-
-
-
-
- mov di,0
- mov si,0
- mov bx,0
- ;算出人均工资,取商AX,放入table段的d,e字节中
- mov cx,21
- jieguo:
- mov ax,es:[bx+di+5h]
- add di,2
- mov dx,es:[bx+di+5h]
- sub di,di
-
-
- div word ptr es:[bx+0ah]
- mov es:[bx+0dh],ax
-
- add bx,10h
-
- loop jieguo
-
-
-
- mov ax,4c00h
- int 21h
-
- code ends
-
- end start
复制代码
|
|