📄 fv.asm
字号:
DATA SEGMENT
LIE EQU 50 ;窗口起始列
HANG EQU 20 ;窗口起始行
WWIDTH DB 16 ;飞行宽度
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;指定段寄存器
START: MOV AX,DATA
MOV DS,AX
CALL CLEAR_SCREEN ;清屏
MOV DH, HANG
MOV DL,LIE
FLY: MOV AH,02H ;设置光标位置(窗口左上角)
MOV BH,0
INT 10H
MOV CX,1 ;显示一个‘v’
MOV AL,'V'
MOV BL,03H
MOV AH,09H
MOV BH,0
INT 10H
DEC DL ;列坐标加一
MOV AH,02H ;设置光标位置
MOV BH,0
INT 10H
MOV CX,1 ;显示破折号
MOV AL,'_'
MOV BL,07H
MOV AH,09H
MOV BH,0
INT 10H
DEC DH ;行坐标减一
MOV CX,65535
CALL WAIT1 ;暂停
CALL CLEAR_SCREEN ;清屏
DEC WWIDTH
JZ EXIT
JMP FLY
CLEAR_SCREEN PROC NEAR ;清屏子程序
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV BH,0
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
INT 10H
MOV DH,0
MOV DL,0
MOV AH,2
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
CLEAR_SCREEN ENDP
WAIT1 PROC NEAR
PUSH AX
WAIT2:
IN AL,61H
AND AL,30H
CMP AL,AH
JE WAIT2
MOV AH,AL
LOOP WAIT2
POP AX
RET
WAIT1 ENDP
EXIT: MOV AX,4C00H
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -