写不下去了, 各位帮改改
assume cs:code,ds:data,ss:stack
;------------------------stack
stack segment
db 16 dup (0)
stack ends
;------------------------data
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
dd '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
;-----------------------ES
table segment
db 21 dup ('year summ ne ?? ')
table ends
;-----------------------code
code segment
start:
;段寄存器初始化
mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov ax,stack
mov ss,ax
mov sp,16
;寄存器清零
mov ax,0
mov bx,0
mov di,0
mov si,0
mov dx,0
mov cx,20
s20: push cx ;入栈
mov cx,4
s1:mov al,ds:[bx+si]
mov es:[bx],al
inc bx
loop s1
;bx=3
mov cx,4
mov ax,0
push bx
mov bx,0
push bx
s2:mov al,[bx+si+84]
pop bx;
mov es:[bx+2],al
inc bx
loop s2
;bx=8
mov cx,2
s3:mov al,[bx+2]
mov es:[bx+2],al
inc bx
loop s3
;bx=b
;除法运算
pop dh
pop dl ;dx 高16位
pop ah
pop al ;ax 低16位
sub bx
div es:[bx]
;bx=a
;ax存余数
add bx,3
;bx=d
mov es:[bx],ax
pop cx
loop s20
mov ax,4100h
int 21h
code ends
end start
------解决方案--------------------
和下面的这个类似?或许可以参考下
http://bbs.csdn.net/topics/390715980