#2
wp2319572014-02-26 21:32
|
程序代码:
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 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 ;13入栈
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
;------------------------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 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 ;13入栈
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