assume cs:code,ds:data,es:table,ss:stack
stack segment stack
db 16 dup(0)
stack ends
data segment
db '1975','1976','1977','1978','1979','1980','1995'
dd 16,22,382,1356,2390,8000,5937000
dw 3,7,9,13,28,38,17800
data ends
table segment
db 7 dup('year sume ne ?? ')
table ends
code segment
start: mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov si,0
mov di,0
mov cx,7
mov bx,1
push bx
mov bx,8
push bx
s0: push cx
mov cx,2
mov bx,0
s1: mov ax,[bx+di]
mov es:[bx+si],ax
add bx,2
loop s1
add di,4
add si,16
pop cx
loop s0
;add di,4
mov si,5
pop cx
loop s0
;add di,4
mov si,10
mov bx,0
mov cx,7
s2: mov ax,[di]
mov es:[si],ax
add di,2
add si,16
loop s2
mov ax,table
mov ds,ax
mov bx,0
mov si,2
mov cx,7
s3: mov dx,[bx].5[si]
sub si,2
mov ax,[bx].5[si]
div word ptr [bx].10
mov [bx].13,ax
add bx,10h
mov si,2
loop s3
mov ax,4c00h
int 21h
code ends
end start