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, 97497, 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
code segment
start:
mov ax, data
mov es, ax
mov si, 0
mov di, 168 ; di指向data中的雇员
mov ax, table
mov ds, ax
mov bx, 0
mov cx, 21 ; 21年,循环21次
year:
; 年份
mov ax, es:[si] ; si指向data中的年份
mov [bx], ax ; bx指向table
mov ax, es:[si+2]
mov [bx+2], ax
; 收入
mov ax, es:[si+84] ; si+84指向data中的收入
mov [bx+5], ax
mov ax, es:[si+86]
mov [bx+7], ax
; 雇员
mov ax, es:[di]
mov [bx+0aH], ax
; 人均收入
mov ax, [bx+5] ; ax存放被除数低16位
mov dx, [bx+7] ; dx存放被除数高16位
div word ptr [bx+0aH]
mov [bx+0dH], ax ; 结果的商存放在ax中
add bx, 10H
add si, 4
add di, 2
loop year
mov ax, 4c00H
int 21H
code ends
end start