assume cs:codesg,ss:stacksg
data segment
db '1975','1976','1977','1978','1979'
db '1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989'
db '1990','1991','1992','1993','1994'
db '1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065
dd 97479,140417,197514,345980,590827,803530
dd 1183000,1843000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258
dw 2793,4037,5635,8226,11542,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
stacksg segment
dw 8 dup(0)
stacksg ends
codesg segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov si,84
mov bp,168
mov cx,21
mov ax,table
mov es,ax
mov ax,stacksg
mov ss,ax
mov sp,10h
mov di,0
s:
push cx
mov cx,4
t:
mov al,[bx]
mov es:[di],al
inc bx
inc di
loop t
mov byte ptr es:[di] , ' '
inc di
mov cx , 4
f:
mov al, [si]
mov es:[di],al
inc si
inc di
loop f
mov byte ptr es:[di] , ' '
inc di
mov cx , 2
g:
mov al,ds:[bp]
mov es:[di],al
inc bp
inc di
loop g
mov byte ptr es:[di] , ' '
inc di
mov ax , [si-4]
mov dx , [si-2]
div word ptr ds:[bp-2]
mov es:[di],ax
inc di
inc di
mov byte ptr es:[di] , ' '
inc di
pop cx
loop s
mov ax , 4c00h
int 21h
codesg ends
data segment
db '1975','1976','1977','1978','1979'
db '1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989'
db '1990','1991','1992','1993','1994'
db '1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065
dd 97479,140417,197514,345980,590827,803530
dd 1183000,1843000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258
dw 2793,4037,5635,8226,11542,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
stacksg segment
dw 8 dup(0)
stacksg ends
codesg segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov si,84
mov bp,168
mov cx,21
mov ax,table
mov es,ax
mov ax,stacksg
mov ss,ax
mov sp,10h
mov di,0
s:
push cx
mov cx,4
t:
mov al,[bx]
mov es:[di],al
inc bx
inc di
loop t
mov byte ptr es:[di] , ' '
inc di
mov cx , 4
f:
mov al, [si]
mov es:[di],al
inc si
inc di
loop f
mov byte ptr es:[di] , ' '
inc di
mov cx , 2
g:
mov al,ds:[bp]
mov es:[di],al
inc bp
inc di
loop g
mov byte ptr es:[di] , ' '
inc di
mov ax , [si-4]
mov dx , [si-2]
div word ptr ds:[bp-2]
mov es:[di],ax
inc di
inc di
mov byte ptr es:[di] , ' '
inc di
pop cx
loop s
mov ax , 4c00h
int 21h
codesg ends
end start
运行结果:在我的DOS系统中,table 的数据在内存单元 1419:00e0----1419:022f 这336个字节当中。见附图