1. 程式人生 > >彙編:動態畫出一棵七彩聖誕樹

彙編:動態畫出一棵七彩聖誕樹

好久沒有寫文章了,其實想寫的有很多,光是彙編程式碼就有很多知識點值得記下來,但是藍癌症犯了,總是拖著,今天先寫一點,以後慢慢把東西都寫到這來吧。
這裡寫圖片描述

這是
在寒假寫的一個彙編程式程式碼如下:

assume cs:code
data segment
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789ABCDE'
data ends

code segment
    start:
        mov ax,data
        mov es,ax
        mov ax,0b800h
        mov ds,ax
        mov cx,25
mov dh,0 mov byte ptr es:[42],24 s: mov si,0 mov dl,0 call show_str call s1 dec byte ptr es:[42] inc dh call delay loop s mov dh,0 mov dl,80 mov byte ptr es:[43],18 mov cx,8 call
zuoxie mov cx,6 dec dh add dl,4 call heng inc dh sub dl,4 mov cx,10 call zuoxie mov cx,10 dec dh add dl,4 call heng mov cx,7 s2: inc dh call show_tree call delay loop
s2 mov cx,3 call heng mov cx,7 s3: dec dh call show_tree call delay loop s3 mov cx,10 call heng mov cx,10 call youxie mov cx,6 call heng mov cx,7 call youxie mov ax,4c00h int 21h youxie: dec dh sub dl,4 call show_tree call delay inc byte ptr es:[43] loop youxie ret zuoxie: call show_tree call delay inc dh inc byte ptr es:[43] sub dl,4 loop zuoxie ret heng: add dl,4 call show_tree call delay inc byte ptr es:[43] loop heng ret show_tree: mov al,160 mul dh push dx mov dh,0 add ax,dx pop dx mov bx,ax ;bx存放地址 change1: mov byte ptr [bx],1 mov al,es:[43] mov byte ptr [bx+1],al ret s1: push dx mov dh,es:[42] mov dl,4 mov si,1 call show_str pop dx ret show_str: mov al,160 mul dh push dx mov dh,0 add ax,dx pop dx mov bx,ax ;bx存放地址 push cx mov cx,20 change: mov al,es:[si] mov [bx],al mov byte ptr [bx+1],2 add si,2 add bx,8 loop change pop cx ret delay: push cx mov cx,0ffh fir: mov ax,0ffh rep10: dec ax cmp ax,0h jne rep10 loop fir pop cx ret code ends end start

沒寫註釋,湊合看吧,如果有問題,歡迎在下邊評論