实验七,算是写出来了吧,但是有溢出,请指教!还是欠缺程序编译的经验,都说写程序前要先设计流程的,真不知道是咋整滴。那本书有讲这个的,鱼老师教我。谢谢!
- assume cs:codesg
- 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,130,220,476,778,1001,1442,2258,2739,4037,5635,8226
- dw 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 si,0
- mov di,0
-
- s: ;将年份送入table
- mov al,[bx]
- mov es:[di],al
- mov al,[bx+1]
- mov es:[di+1],al
- mov al,[bx+2]
- mov es:[di+2],al
- mov al,[bx+3]
- mov es:[di+3],al
-
- ;加入一个空格
- mov byte ptr es:[di+4],20h
-
- ;将公司总收入分别入AX,DX
- mov ax,54h[bx]
- mov dx,56h[bx]
- mov es:6h[di],ax
- mov es:8h[di],dx
-
- ;加入一个空格进去
- mov byte ptr es:9h[di],20h
-
- ;将雇员人数送入到table表中
- mov ax,0a8h[si]
- mov es:0ah[di],ax
-
- ;再加入一个空格
- mov byte ptr es:0ch[di],20h
-
- ;将年均收入写入table
- mov ax,54h[di]
- div word ptr 0a8h[si]
- mov es:0dh[di],ax
-
- ;修改变量bx,si,di
- add bx,4
- add si,2
- add di,16
-
- loop s
-
- mov ax,4c00h
- int 21h
- codesg ends
- end start
-
复制代码
|