📄 27_f.asm
字号:
pop dx
pop cx
pop bx
pop ax
ret
move_shape2 endp
;-----------------------------------------
must_2 proc near
push ax
push bx
push cx
push dx
push di
mov ah,0fh
int 10h
exit41: sub cx,cx
mov col,2
mov col01,2
mov char0,2
mov char01,2
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
mov char,cx
jmp plot_next1
exit31: sub cx,cx
mov cx,char_cnt2
mov di,pointer2
mov dh,line_on2
mov dl,col_on2
mov char,cx
jmp plot_next1
;-------------------------------------
exit61: call dly_qrtr
mov char0,2
mov char01,2
mov col01,2
mov col,2
mov dl,col_on2
dec dl
cmp char1,dl
je exit71
call erase1
cmp col0,26
je exit41
add col0,2
jmp exit41
;----------------------------
exit71: cmp count1,1
je exit93
cmp line_on1,4
jne exit91
cmp col0,26
jne exit92
exit91: sub col0,2
je exit82
inc line_on1
inc line_on2
sub col_on1,2
add col_on2,2
call erase1
mov count1,2
jmp exit41
exit82: cmp count_cx,1
je exit22
jmp exit81
exit92: mov al,26
sub al,col0
mov count2,al
add count2,2
mov dl,col0
mov col00,dl
exit93: sub count2,2
je exit91
inc line_on1
inc line_on2
sub col_on1,2
add col_on2,2
sub col0,2
call erase1
mov dl,col00
mov col0,dl
dec count1
cmp count1,1
je exit94
mov count1,1
exit94: jmp exit41
exit22: jmp exit21
exit81: add char1,2
sub char2,2
cmp char1,39
je exit21
mov line_on1,4
mov line_on2,4
mov dl,char1
inc dl
mov col_on1,dl
mov dl,char2
dec dl
mov col_on2,dl
mov col0,2
mov count1,2
jmp exit41
exit01: mov line2,dh
mov col2,dl
add di,4
mov pot2,di
mov dl,col01
cmp col0,dl
je exit02
add col01,2
mov col,2
mov char01,2
dec char01
jmp exit410
exit02: jmp exit61
exit21: pop di
pop dx
pop cx
pop bx
pop ax
ret
exit03: jmp exit01
exit410: mov dh,line1
mov di,pot1
mov dl,col1
jmp plot_next1
exit310: mov dh,line2
mov di,pot2
mov dl,col2
;----------------------------------------
plot_next1:
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
dec col
je exit51
add di,4
jmp plot_next1
exit51: cmp char01,0
je exit03 ;-------------
cmp char01,1
je exit12
cmp char0,1
je exit03 ;--------------------
mov line1,dh
mov col1,dl
add di,4
mov pot1,di
mov col,2
dec char0
jmp exit31
exit12: mov line1,dh
mov col1,dl
add di,4
mov pot1,di
mov col,2
dec char01
jmp exit310
must_2 endp
;--------------------------------------------
erase proc near
cmp count0,4
jne exit6
add col_on1,2
jmp exit
exit6: cmp count0,3
jne exit7
sub col_on1,2
jmp exit
exit7: cmp count0,2
jne exit8
inc line_on1
jmp exit
exit8: cmp count0,1
jne exit
dec line_on1
exit: mov dh,line_on1
mov dl,col_on1
mov cx,char_cnt1
mov di,pointer1
ret
erase endp
;-----------------------------------------
;----------------------------------------
erase1 proc near
sub cx,cx
mov cx,char_cnt1
mov di,pointer1
mov dh,line_on1
mov dl,col_on1
mov char,cx
jmp erase_next1
exit62: sub cx,cx
mov cx,char_cnt2
mov di,pointer2
mov dh,line_on2
mov dl,col_on2
mov char,cx
jmp erase_next1
exit011: mov line2,dh
mov col2,dl
add di,4
mov pot2,di
mov dl,col01
cmp col0,dl
je exit021
add col01,2
mov col,2
mov char01,2
dec char01
jmp exit4101
exit021: jmp left
exit012: jmp exit011
exit4101: mov dh,line1
mov di,pot1
mov dl,col1
jmp erase_next1
exit3101: mov dh,line2
mov di,pot2
mov dl,col2
erase_next1:
add dh,[di+2]
add dl,[di+3]
mov ah,2
int 10h
mov al,'*'
mov bl,0
push cx
mov cx,1
mov ah,9
int 10h
pop cx
;-------------------------------------
dec col
je exit0
add di,4
jmp erase_next1
exit0: cmp char01,0
je exit011 ;-------------
cmp char01,1
je exit121
cmp char0,1
je exit012 ;--------------------
mov line1,dh
mov col1,dl
add di,4
mov pot1,di
mov col,2
dec char0
jmp exit62
exit121: mov line1,dh
mov col1,dl
add di,4
mov pot1,di
mov col,2
dec char01
jmp exit3101
left: add col_on1,2
sub col_on2,2
ret
erase1 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 + -