差点挂掉
北京时间5月3日凌晨3点33分,历时4个多小时,做完了第一个课程设计。很是庆幸我的手指,还有敲打键盘的力气,饥锇,头沉,眼酸,旁边有个蚊子在我身边飞来飞去,右前上方,gali的呼噜声滚滚而来,无穷无尽,右前方,shit的磨牙声清脆刺耳,边绵不绝。不写了,不说了,快挂 了,倒…那个小蚊…你想咬就咬吧…..啊…
assume cs:codesg,ss:stack,ds:data
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
stack segment
dw 16 dup (0)
stack ends
table segment
db 21 dup (‘year sumn ne ?? ‘)
table ends
table2 segment
db 8 dup (‘ ‘)
db 21 dup (‘year 12345678 12345678 12345678 ‘)
table2 ends
codesg segment
start: mov ax,data
mov es,ax
mov ax,table
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,32
mov bx,0
mov di,0
mov si,0
mov cx,21
s1:mov ax,es:0[di]
mov [bx].0,ax
mov ax,es:2[di]
mov [bx].2,ax
mov byte ptr [bx].4,20h
mov ax,es:84[di]
mov [bx].5,ax
mov ax,es:86[di]
mov [bx].7,ax
mov byte ptr[bx].9,20h
mov ax,es:168[si]
mov [bx].0ah,ax
mov byte ptr [bx].0ch,20h
mov dx,[bx].7
mov ax,[bx].5
div word ptr [bx].0ah
mov word ptr [bx].0dh,ax
mov byte ptr [bx].0fh,20h
add di,4
add bx,16
add si,2
loop s1
mov bx,8
mov cx,21
mov si,0
mov di,0
mov ax,table2
mov es,ax
s2: push cx
mov si,0
mov ax,0[di]
mov dx,2[di]
mov es:[bx].0[si],ax
mov es:[bx].2[si],dx
mov ax,5[di]
mov dx,7[di]
call clear
call dtoc
mov cx,4
s3:mov ax,es:[si]
mov es:[bx].9[si],ax
add si,2
loop s3
mov ax,10[di]
mov dx,0
call clear
call dtoc
mov cx,4
mov si,0
s4:mov ax,es:[si]
mov es:[bx].18[si],ax
add si,2
loop s4
mov ax,13[di]
mov dx,0
call clear
call dtoc
mov cx,4
mov si,0
s5:mov ax,es:[si]
mov es:[bx].27[si],ax
add si,2
loop s5
mov al,0
mov es:[bx].35,al
pop cx
add di,16
add bx,36
loop s2
mov ax,table2
mov ds,ax
mov dh,2
mov dl,2
mov si,8
mov cx, 21
s6:push cx
mov cl,7
call show_str
inc si
inc dh
pop cx
loop s6
mov ax,4c00h
int 21h
dtoc: push dx
push si
push cx
push di
mov di,0
mov si,0
dcs:mov cx,10
call divdw
push cx
inc di
mov cx,ax
jcxz dcs1
jmp short dcs
dcs1:mov cx,di
dcok:pop ax
add al,30h
mov es:[si],al
inc si
loop dcok
pop di
pop cx
pop si
pop dx
ret
divdw: push si
push di
mov si,ax
mov ax,dx
mov dx,0
div cx
mov di,ax
mov ax,si
div cx
mov cx,dx
mov dx,di
pop di
pop si
ret
clear: push cx
push si
push ax
mov cx,8
mov si,0
cr:mov al,20h
mov es:[si],al
inc si
loop cr
pop ax
pop si
pop cx
ret
show_str: push cx
push ax
push bx
push es
push dx
mov ax,0b800h
mov es,ax
mov ax,0a0h
mul dh
mov bx,ax
add dl,dl
mov dh,0
add bx,dx
mov ch,0
mov ah,cl
show:mov cl,[si]
jcxz sok
mov al,cl
mov es:[bx],ax
inc si
add bx,2
jmp short show
sok: pop dx
pop es
pop bx
pop ax
pop cx
ret
codesg ends
end start

多多注意哦
[Reply]
thanks,呵呵
[Reply]
This is way better than a brick & mortar esatblihsemnt.
[Reply]