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,38,130,220,476,778,1001,1442,2258,2793,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;设置ds=data
mov ax,table
mov es,ax;设置es=table
mov bx,0;设置bx指向table的第一行
mov bp,0;设置bp指向年份/收入数据中的第一个数据
mov di,0;设置di指向雇员数的第一个数据
mov cx,21;21行
s:mov si,0;设置变量i
mov ax,ds:[bp][si]
mov es:[bx].0[si],ax;将data中年份的低字复制到table
add si,2;此时i指向年份的高字
mov dx,ds:[bp][si]
mov es:[bx].0[si],dx;将data中年份的高字复制到table
mov si,0;变量i清0
mov ax,ds:[bp].84[si]
mov es:[bx].5[si],ax;将data中收入的低字复制到table
add si,2;此时i指向收入的高字
mov dx,ds:[bp].84[si]
mov es:[bx].5[si],dx;将data中收入的高字复制到table
add bp,4;设置bp指向年份/收入数据的下一个数据
div word ptr ds:[di].168;除法除得人均收入
mov es:[bx].13,ax;将商复制到table
mov ax,ds:[di].168
mov es:[bx].10,ax;将data中雇员数复制到table
add di,2;设置di指向雇员数数据的下一个数据
add bx,16;设置bx指向table的下一行
loop s
mov ax,4c00h
int 21h
codesg ends
end start
汇编语言实验7
最新推荐文章于 2024-08-23 13:42:25 发布