[share code] Trai lập trình tỏ tình - Không đồng ý liệu có được ???

      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

:)
:(
=(
^_^
:D
=D
=)D
|o|
@@,
;)
:-bd
:-d
:p
:ng