您的位置:首页 > 其它

寒假汇编语言作业(11)

2015-02-05 14:16 197 查看
程序设计项目十一

动态画出一个棵七彩圣诞树。参看demo5.gif示例。

assume cs:code

data segment
db 'ACEGIKMOQSUWY13579BD'
db 'BDFHJLNPRTVXZ2468ACE'
data ends

stack segment
dw 8 dup(0)
stack ends

code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov ax,stack
mov ss,ax
mov sp,10h

call clear_screen
call greenground
call draw_chrismastree
call over

draw_chrismastree:
mov di,80
mov ah,31
mov al,'*'
call draw
mov cx,7
dxt0:
add di,156
call draw
loop dxt0
mov cx,6
dxt1:
add di,4
call draw
loop dxt1
mov cx,10
dxt2:
add di,156
call draw
loop dxt2
mov cx,10
dxt3:
add di,4
call draw
loop dxt3
mov cx,7
dxt4:
add di,160
call draw
loop dxt4
mov cx,3
dxt5:
add di,4
call draw
loop dxt5
mov cx,7
dxt6:
sub di,160
call draw
loop dxt6
mov cx,10
dxt7:
add di,4
call draw
loop dxt7
mov cx,10
dxt8:
sub di,164
call draw
loop dxt8
mov cx,6
dxt9:
add di,4
call draw
loop dxt9
mov cx,8
dxt10:
sub di,164
call draw
loop dxt10
ret

draw:
add ah,12
mov es:[di],ax
call sleep_1s
ret

greenground:
mov di,0
mov bp,3844
mov cx,25
gg0:
push cx
mov ah,02h
mov si,0
mov bx,20
mov cx,20
gg1:
mov al,ds:[si]
mov es:[di],ax
mov al,ds:[bx]
mov es:[bp],ax
add di,8
add bp,8
inc si
inc bx
loop gg1
call sleep_1s
sub bp,320
pop cx
loop gg0
ret

sleep_1s:
push cx
mov cx,8h
sps0:
push cx
mov cx,0ffffh
sps1:
loop sps1
pop cx
loop sps0
pop cx
ret

clear_screen:
push cx
push di
mov di,0
mov cx,25
cses0:
push cx
mov cx,80
cses1:
mov word ptr es:[di],0
add di,2
loop cses1
pop cx
loop cses0
pop di
pop cx
ret

over:
mov ax,4c00h
int 21h
code ends
end start


hj11.asm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: