【汇编语言】王爽第三版----------------实验7

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' 
	;以上表示21年的21个字符串 地址0~53H
	
	dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
	dd 345980,590827,803530,11830000,1843000,2759000,3753000,4649000,5937000
	;以上表示21年公司总输入的21个dword型数据 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年公司雇员人数的21个word型数据 0a8H~0d1H
	
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	;这里是关联data段
	mov si,0
	mov di,0	;这里是关联table段
	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 ds:0a8H[si]	;除以人数
	mov es:0dH[di],ax		;把商存入

	add bx,4	;确定年份和收入
	add si,2	;确定人数
	add di,16	;确定每行的列数
	loop s
	
	mov ax,4c00H
	int 21H


codesg ends
end start

Guess you like

Origin blog.csdn.net/a851248662/article/details/79322492