《汇编语言》三版——王爽——实验7

实验如下:

《汇编语言》三版——王爽——实验7_第1张图片
《汇编语言》三版——王爽——实验7_第2张图片
编程代码如下:

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'
;以上表示21个年份(Byte字节) 0~53H
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上表示21个年份的年收入(double word ) 54H~0a7H
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
;以上表示21个年份的雇员人数(word)	0a8H~0d1H
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start:
		mov ax,data			;数据段寄存器ds指向table
		mov ds,ax
		mov ax,table		;数据段寄存器ds指向table
		mov es,ax
		
		mov bx,0
		mov si,0
		mov di,0
		mov cx,21			;循环21次
		
	s:	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 ax,54H[bx]
		mov dx,56H[bx]
		mov es:5H[di],ax
		mov es:7H[di],dx	;存放年收入
		
		mov ax,0a8H[si]
		mov es:0aH[di],ax	;存放员工人数
		
		mov ax,54H[bx]
		mov dx,56H[bx]
		div word ptr es:0aH[di]
		mov word ptr es:0dH[di],ax	;计算员工年平均工资
		
		add si,2					;si控制 word型数据循环
		add bx,4					;si控制 Byte和double word 型数据循环
		add di,16					;di控制 每行的列循环
		loop s
		
		mov ax,4c00H
		int 21H
		
code ends
end start

效果如下:
《汇编语言》三版——王爽——实验7_第3张图片

你可能感兴趣的:(汇编)