Một anh chàng học năm thứ 2 công nghệ thông tin Viện Đại học Mở đã viết chương trình này, không biết viết cho ai, nhưng hắn bảo viết hết một đêm đó (sau khi học môn lập trình hệ thống). Và hắn nói:
"Nàng làm thơ trao tặng tôi,
đêm về tôi viết những khúc nhạc.....
Rồi ngẩn ngơ nhớ lúc em tươi cười quên hết âu lo..."
Và đây là code của hắn:
.Model small
.Stack 100h
.Data
s1 DB 13,10,'Cau co thich to khong? (c/k): $'
s2 DB 13,10,' $'
s3 DB ' $'
s4 DB 13,10,'+$'
s5 DB '+$'
b DB 13,10,'Aaaaaa..... Chan qua di mat!$'
d DB 13,10,'Hihi, to cung thich cau...$'
re DB 13,10,'Cho tra loi lai day ...$'
br DB 13,10,'$'
load DB 'Loading: $'
isLoad DB ' 99.9999%$'
.Code
Hien_xau macro xau
push dx
push ax
lea dx,xau
mov ah,9
int 21h
pop ax
pop dx
Endm
Hien_xaus4 macro
push ax
Hien_xau br
mov al,003
mov ah,0eh
int 10h
pop ax
Endm
Hien_xaus5 macro
push ax
mov al,003
mov ah,0eh
int 10h
pop ax
Endm
Other_line Proc
push ax
push cx
push dx
push bx
push si
mov si,ax
mov bp,dx
mov di,1
start_line:
inc bp
cmp bp,di
jz end_line
dec bp
cmp di,1
jz daudong
jmp khongphaidaudong
daudong:
cmp si,1
jz traitimdaudong
Hien_xau s2
inc di
jmp start_line
traitimdaudong:
Hien_xaus4
inc di
jmp start_line
khongphaidaudong:
cmp si,2
jz hienchu
khongphaichu:
cmp di,bx
jz hiendausao
cmp di,cx
jz hiendausao
cmp di,dx
jz hiendausao
cmp di,si
jz hiendausao
Hien_xau s3
inc di
jmp start_line
hiendausao:
Hien_xaus5
inc di
jmp start_line
hienchu:
cmp di,7
jz hienchu1
cmp di,17
jz hienchu2
jmp khongphaichu
hienchu1:
mov al,84
mov ah,0eh
int 10h
inc di
jmp start_line
hienchu2:
mov al,72
mov ah,0eh
int 10h
inc di
jmp start_line
end_line:
pop si
pop bx
pop dx
pop cx
pop ax
RET
Endp
Main:
mov ax,@data
mov ds,ax
Hien_xau load
mov cx,30
loading:
mov al,178
mov ah,0eh
int 10h
loop loading
Hien_xau isLoad
Hien_xau br
Batdau:
Hien_xau s1
mov al,007 ;beep
mov ah,0eh
int 10h
int 10h
int 10h
int 10h
mov ah,01h
int 21h
mov ah,0
cmp ax,99
jnz rechose
Hien_xau br
Hien_xau d
mov bx,11
mov di,1
mov cx,21
line1: ;line1
inc cx
cmp cx,di
jz end_line1
dec cx
cmp di,1
jz daucachdaudong_line1
cmp di,3
jz dausao_line1
cmp di,4
jz dausao_line1
cmp di,5
jz dausao_line1
cmp di,9
jz dausao_line1
cmp di,10
jz dausao_line1
cmp di,11
jz dausao_line1
cmp di,13
jz dausao_line1
cmp di,14
jz dausao_line1
cmp di,15
jz dausao_line1
cmp di,19
jz dausao_line1
cmp di,20
jz dausao_line1
cmp di,21
jz dausao_line1
Hien_xau s3
inc di
jmp line1
dausao_line1:
Hien_xaus5
inc di
jmp line1
daucachdaudong_line1:
Hien_xau s2
inc di
jmp line1
end_line1:
mov di,1
mov cx,22 ;line 2
line2:
inc cx
cmp cx,di
jz end_line2
dec cx
cmp di,1
jz daucachdaudong_line2
cmp di,2
jz dausao_line2
cmp di,6
jz dausao_line2
cmp di,8
jz dausao_line2
cmp di,12
jz dausao_line2
cmp di,16
jz dausao_line2
cmp di,18
jz dausao_line2
cmp di,22
jz dausao_line2
Hien_xau s3
inc di
jmp line2
dausao_line2:
Hien_xaus5
inc di
jmp line2
daucachdaudong_line2:
Hien_xau s2
inc di
jmp line2
end_line2:
mov di,1 ;line3
mov cx,23
line3:
inc cx
cmp cx,di
jz end_line3
dec cx
cmp di,1
jz dausaodaudong_line3
cmp di,7
jz dausao_line3
cmp di,11
jz dausao_line3
cmp di,13
jz dausao_line3
cmp di,17
jz dausao_line3
cmp di,23
jz dausao_line3
Hien_xau s3
inc di
jmp line3
dausao_line3:
Hien_xaus5
inc di
jmp line3
dausaodaudong_line3:
Hien_xaus4
inc di
jmp line3
end_line3:
;line4
mov ax,1
mov bx,11
mov cx,13
mov dx,23
CALL Other_line
;line5
mov ax,1
mov bx,11
mov cx,13
mov dx,23
CALL Other_line
;line6
mov ax,2
mov bx,12
mov cx,12
mov dx,22
CALL Other_line
;line7
mov ax,3
mov bx,11
mov cx,13
mov dx,21
CALL Other_line
;line8
mov ax,4
mov bx,10
mov cx,14
mov dx,20
CALL Other_line
;line9
mov ax,5
mov bx,9
mov cx,15
mov dx,19
CALL Other_line
;line10
mov ax,6
mov bx,8
mov cx,16
mov dx,18
CALL Other_line
;line11
mov ax,7
mov bx,7
mov cx,17
mov dx,17
CALL Other_line
jmp Ketthuc
rechose:
Hien_xau b
Hien_xau br
Hien_xau re
jmp Batdau
Ketthuc:
Hien_xau br
mov ah,1
int 21h
mov ah,4ch
int 21h
End Main
ConversionConversion EmoticonEmoticon