1 assume cs:code, ds:data, es:table
 2 
 3 data    segment
 4 
 5     db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
 6     db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
 7     db '1993','1994','1995'
 8 
 9     ;下面起始地址为 84
10     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
11     dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
12 
13     ;下面起始地址为 168
14     dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
15     dw 11542,14430,15257,17800
16 
17 data    ends
18 
19 table   segment
20 
21     db  21  dup('year summ ne ?? ')
22 
23 table   ends
24 
25 code    segment
26 _start:
27     mov     ax, data
28     mov     ds, ax
29     mov     ax, table
30     mov     es, ax
31 
32     mov     bx, 0
33     mov     si, 0
34     mov     di, 168
35     mov     cx, 21
36 
37 _s1:
38     mov     ax, ds:[si]
39     mov     es:[bx], ax
40     mov     ax, ds:[si+2]
41     mov     es:[bx+2], ax
42     mov     byte ptr es:[bx+4], 20H
43 
44     mov     ax, ds:[si+84]
45     mov     es:[bx+5], ax
46     mov     dx, ds:[si+86]
47     mov     es:[bx+7], dx       ;把高字放入dx中,用于求人均收入 (dx:ax / 人数 )
48     mov     byte ptr es:[bx+9], 20H
49 
50     mov     bp, ds:[di]
51     mov     es:[bx+10], bp
52     mov     byte ptr es:[bx+12], 20H
53 
54     div     bp      ;ax 存放结果, dx存放余数.
55                     ;双字除法
56     mov     es:[bx+13], ax       ;将计算结果放入
57     mov     byte ptr es:[bx+15], 20H
58 
59     add     bx, 10H
60     add     si, 4H
61     add     di, 2H
62 loop    _s1
63 
64 code    ends
65 end     _start