📄 101_a.asm
字号:
db 3dh,0ch,1,0
db 3dh,0ch,0,1
db '_',0ch,-1,0
db 3dh,0ch,-8,0
db '_',0ch,-1,0
db '_',0ch,0,1
db 3dh,0ch,1,0
db '_',0ch,8,0
db 3dh,0ch,1,0
db 3dh,0ch,0,1
db '_',0ch,-1,0
db 3dh,0ch,-8,0
db '_',0ch,-1,0
db '_',0ch,0,1
db 3dh,0ch,1,0
db '_',0ch,8,0
db 3dh,0ch,1,0
db 3dh,0ch,0,1
db '_',0ch,-1,0
db 5ch,0ch,-7,0
db 5ch,0ch,-1,0
db 5ch,0ch,1,1
db 5ch,0ch,1,0
db 2fh,0ch,6,0
db 2ah,0ch,1,0
db 2fh,0ch,-1,1
db 28h,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 5ch,0ch,-1,0
db 7ch,0ch,1,1
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 29h,0ch,1,0
UUU db 77
db '_',0ch,0,0
db 7ch,0ch,1,0
db '_',0ch,-1,1
db 3dh,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 5ch,0ch,1,1
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 7ch,0ch,-1,0
db 3dh,0ch,-1,0
db '_',0ch,-1,0
db '_',0ch,0,1
db 7ch,0ch,1,0
db 5ch,0ch,8,0
db 5ch,0ch,1,0
db 5ch,0ch,0,1
db '_',0ch,-1,0
db '_',0ch,0,1
db '_',0ch,1,0
db '_',0ch,0,1
db '_',0ch,-1,0
db '_',0ch,0,1
db '_',0ch,1,0
db '_',0ch,0,1
db '_',0ch,-1,0
db '_',0ch,0,1
db '_',0ch,1,0
db '_',0ch,0,1
db '_',0ch,-1,0
db '_',0ch,0,1
db 2fh,0ch,1,0
db 2bh,0ch,0,1
db 2fh,0ch,-1,0
db 7ch,0ch,-8,0
db '_',0ch,-1,0
db '_',0ch,0,1
db 3dh,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 2ah,0ch,1,0
db 2fh,0ch,1,0
db 2fh,0ch,-1,1
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 2bh,0ch,-1,0
db 3dh,0ch,-1,0
db '_',0ch,-1,0
db '_',0ch,0,1
db 3dh,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,1,0
db 7ch,0ch,-7,1
db '_',0ch,-1,0
db '_',0ch,0,1
car db 6
db 3dh,0eh,0,0
db 40h,0bh,1,0
db 3dh,0eh,1,0
db 3ch,0eh,0,1
db 02ah,0bh,-1,0
db 3ch,0eh,-1,0
jeep db 6
db 3dh,0eh,0,0
db 40h,0bh,1,0
db 3dh,0eh,1,0
db 3ch,0eh,0,-1
db 02ah,0bh,-1,0
db 3ch,0eh,-1,0
char_cnt1 dw ?
pointer1 dw ?
line_on1 db ?
col_on1 db ?
char dw ?
Acount db ?
Acount0 db ?
Acount1 db ?
data_seg ends
;---------------------------------------
code_seg segment
assume cs:code_seg,ds:data_seg
main proc far
push ds
sub ax,ax
sub cx,cx
push ax
push cx
mov ax,data_seg
mov ds,ax
mov Acount1,2
mov Acount0,11
Aagain:
lea di,QQQ
mov dh,8
mov dl,4
call move_shape1
call Amust_2
Aagain0: lea di,III
mov dh,15
mov dl,23
call move_shape1
call Amust_2
lea di,AAAA
mov dh,13
mov dl,38
call move_shape1
call Amust_2
lea di,NNN
mov dh,15
mov dl,58
call move_shape1
call Amust_2
lea di,jeep
mov dh,4
mov dl,75
call move_shape1
call Amust_21
cmp Acount1,1
jne Aagain1
pop cx
ret
;---------------------------------
Aagain1:
lea di,JJJ
mov dh,6
mov dl,3
call move_shape1
call Amust_2
lea di,III
mov dh,15
mov dl,14
call move_shape1
call Amust_2
lea di,AAAA
mov dh,12
mov dl,24
call move_shape1
call Amust_2
lea di,NNN
mov dh,15
mov dl,42
call move_shape1
call Amust_2
lea di,GGG
mov dh,8
mov dl,58
call move_shape1
call Amust_2
lea di,jeep
mov dh,4
mov dl,75
call move_shape1
call Amust_21
;-----------------------------
Aagain2:
lea di,DDD
mov dh,5
mov dl,3
call move_shape1
call Amust_2
lea di,AAAA
mov dh,13
mov dl,18
call move_shape1
call Amust_2
lea di,JJJ
mov dh,6
mov dl,36
call move_shape1
call Amust_2
lea di,III
mov dh,15
mov dl,47
call move_shape1
call Amust_2
lea di,UUU
mov dh,5
mov dl,59
call move_shape1
call Amust_2
lea di,jeep
mov dh,4
mov dl,75
call move_shape1
call Amust_21
;----------------------------
Aagain3:
lea di,DDD
mov dh,5
mov dl,5
call move_shape1
call Amust_2
dec Acount1
jmp Aagain0
main endp
;----------------------------
clear_screen proc near
push ax
push bx
push cx
push dx
mov ah,6
mov al,0
mov ch,4
mov cl,3
mov dh,16
mov dl,63
mov bh,7
int 10h
pop dx
pop cx
pop bx
pop ax
ret
clear_screen endp
;-------------------------------------
;-------------------------------------
move_shape1 proc near
push ax
push bx
push cx
push dx
push di
mov ah,0fh
int 10h
sub ch,ch
mov cl,[di]
inc di
mov char_cnt1,cx
mov pointer1,di
mov line_on1,dh
mov col_on1,dl
mov char,cx
pop di
pop dx
pop cx
pop bx
pop ax
ret
move_shape1 endp
;----------------------------
Amust_2 proc near
push ax
push bx
push cx
push dx
push di
mov ah,0fh
int 10h
sub cx,cx
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
Aplot_next0:
add dh,[di+2]
add dl,[di+3]
mov ah,2
int 10h
mov al,[di]
mov bl,[di+1]
push cx
mov cx,1
mov ah,09
int 10h
pop cx
add di,4
call dly_qrtr
loop Aplot_next0
Aexit6:
pop di
pop dx
pop cx
pop bx
pop ax
ret
Amust_2 endp
;---------------------------------------------
;***********************************************
Amust_21 proc near
push ax
push bx
push cx
push dx
push di
mov ah,0fh
int 10h
mov Acount,20
Aexit1: call dly_qrtr
dec Acount
je Aexit5
jmp Aexit1
Aexit5: sub cx,cx
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
Aplot_next:
add dh,[di+2]
add dl,[di+3]
cmp dl,2
je Aexit4
mov ah,2
int 10h
mov al,[di]
mov bl,[di+1]
push cx
mov cx,1
mov ah,09
int 10h
pop cx
cmp al,40h
je Aexitx0
cmp al,02ah
je Aexitx0
jmp Aexitx1
Aexitx0: dec Acount0
jne Aplot_next
mov Acount0,11
Aexitx1: add di,4
loop Aplot_next
call dly_qrtr
call dly_qrtr
call dly_qrtr
call Aerase
jmp Aexit5
Aexit4: call Aerase
pop di
pop dx
pop cx
pop bx
pop ax
ret
Amust_21 endp
;********************************************
;-----------------------------------------
Aerase proc near
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
Aerase_next:
add dh,[di+2]
add dl,[di+3]
cmp dl,2
je Aleft
mov ah,2
int 10h
mov ah,8
int 10h
cmp al,40h
je Aexitx2
cmp al,02ah
je Aexitx2
jmp Aexitx3
Aexitx2: dec Acount0
jne Aexitx3
mov Acount0,11
Aexitx3: cmp Acount1,1
je Aexit0
mov al,'*'
mov bl,03h
jmp Aexit7
Aexit0: mov al,'*'
mov bl,0
Aexit7: push cx
mov cx,1
mov ah,9
int 10h
pop cx
cmp Acount0,11
jne Aerase_next
add di,4
loop Aerase_next
dec col_on1
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
Aleft: ret
Aerase endp
;-----------------------------------------
;------------------------------------------
dly_qrtr proc near
push cx
push dx
mov dx,25
dll: mov cx,65530
dl2: loop dl2
dec dx
jnz dll
pop dx
pop cx
ret
dly_qrtr endp
;----------------------------------
code_seg ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -