荣誉值:0
信誉值:2
注册日期:2010-12-03 15:01 |
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '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
table segment
db 21 dup ('year summ ne ?? ')
table ends
table2 segment
db 21 dup ('year ')
table2 ends
table3 segment
db 21 dup (' ')
table3 ends
table4 segment
db 21 dup (' ')
table4 ends
table5 segment
db 21 dup (' ')
table5 ends
codesg segment
start:
mov ax,data
mov ds,ax
mov ax,table2
mov es,ax
mov bx,0
mov cx,21
mov si,0
mov di,0
s:
mov ax,[si+0a8h]
mov [0eah+di],ax
mov ax,[bx]
mov [0e0h+di],ax
mov es:[di],ax
mov ax,[bx+2]
mov es:[di+2],ax
mov [0e2h+di],ax
mov al,0
mov es:[di+4],al
mov ax,[bx+84]
mov [0e5h+di],ax
mov dx,[bx+86]
mov [0e7h+di],dx
div word ptr ds:[0eah+di]
mov ds:[0edh+di],ax
add bx,4
add di,16
add si,2
loop s
mov ax,table
mov ds,ax
mov ax,table3
mov es,ax
mov bx,0
mov cx,21
mov si,0
s2:
mov di,0
mov ax,[si+5]
mov dx,[si+7]
push cx
call dtoc
pop cx
add si,16
loop s2
mov ax,table
mov ds,ax
mov ax,table4
mov es,ax
mov bx,0
mov cx,21
mov si,0
s3:
mov di,0
mov ax,[si+0ah]
mov dx,0
push cx
call dtoc
pop cx
add si,16
loop s3
mov ax,table
mov ds,ax
mov ax,table5
mov es,ax
mov bx,0
mov cx,21
mov si,0
s4:
mov di,0
mov ax,[si+0dh]
mov dx,0
push cx
call dtoc
pop cx
add si,16
loop s4
mov cx,21
mov si,0
mov dh,2
s5:
push cx
mov dl,3
mov cl,7
mov ax,table2
mov ds,ax
call show_str
mov dl,12
mov ax,table3
mov ds,ax
call show_str
mov dl,22
mov ax,table4
mov ds,ax
call show_str
mov dl,32
mov ax,table5
mov ds,ax
call show_str
add si,16
inc dh
pop cx
loop s5
mov ax,4c00h
int 21h
dtoc: mov cx,0ah
call divdw
add cx,30h
push cx
mov cx,ax
inc di
jcxz ok
jmp short dtoc
ok:
mov cx,di
mov bx,0
s1:
pop dx
mov es:[bx+si],dx
inc bx
loop s1
ret
divdw:
push si
mov bx,ax
mov ax,dx
mov dx,0
div cx
mov si,ax
mov ax,bx
div cx
mov cx,dx
mov dx,si
pop si
ret
show_str:
push si
push ax
push bx
push es
push cx
push bp
mov ax,0b800h
mov es,ax
mov bx,0H
mov bl,cl
mov al,0a0H
mul dh
mov bp,ax
mov al,2H
mul dl
add bp,ax
ss1:
mov cl,ds:[si]
mov ch,0
jcxz okk
mov es:[bp],cl
mov es:[bp+1],bl
add bp,2
inc si
jmp short ss1
okk:
pop bp
pop cx
pop es
pop bx
pop ax
pop si
ret
codesg ends
end start
以上代码在WIN7下的CMD中的DEBUG中通过,能正常显示 | | |