📄 3.txt
字号:
DATA SEGMENT
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,0
MOV AL,03H
INT 10H
MOV BH,0
MOV DH,10
MOV DL,10
MOV AH,2
INT 10H ;把光标设置在中央,可以不要这几句,主要是让你看得方便
TOP: MOV AH,0
INT 16H
DOWN :CMP AH,50H ;下
JNZ RIGHT
MOV AH,3
MOV BH,0
INT 10H
INC DH
MOV AH,2
INT 10H
JMP NEXT
RIGHT: CMP AH,4DH ;右
JNZ UP
MOV AH,3
MOV BH,0
INT 10H
CMP DL,79 ;判断是不是到了最后一列
JZ NEXT1 ;是,转
INC DL ;不是最后,列号加1
DONE:MOV AH,2
INT 10H
JMP NEXT
NEXT1:INC DH ;如果是最后一列,则光标转到下一行的第一列
MOV DL,0
JMP DONE
UP: CMP AH,48H ;上
JNZ LEFT
MOV AH,3
MOV BH,0
INT 10H
CMP DH,1
JZ NEXT
DEC DH
MOV AH,2
INT 10H
JMP NEXT
LEFT: CMP AH,4BH ;左
JNZ ESC1
MOV AH,3
MOV BH,0
INT 10H
CMP DL,1 ;判断是不是第一列
JZ NEXT2 ;是,转
DEC DL ;不是,列号减1
D: MOV AH,2
INT 10H
JMP NEXT
NEXT2: CMP DH,1 ;是第一列,再判断是不是第一行的第一列
JNZ DDD ;如果不是,转DDD
JMP NEXT ;如果是,说明当前光标位于第一行,第一列,所以光标不动,继续循环!
DDD: DEC DH
MOV DL,79
JMP D
ESC1: CMP AL,1BH ;退出
JNZ BACK
JMP EXIT
BACK: CMP AL,08H ;back键
JNZ ENTER
MOV DL,AL
MOV AH,2
INT 21H
MOV DL,20H
MOV AH,2
INT 21H
MOV AH,3
MOV BH,0
INT 10H
DEC DL
MOV AH,2
INT 10H
JMP NEXT
ENTER:CMP AL,0DH ;ENTER键
JNZ DEFAULT
MOV AH,3
MOV BH,0
INT 10H
INC DH ;若是回车键,则转道下一行(INC DH)的第一列(MOV DL,0)
MOV DL,0
MOV AH,2
INT 10H
JMP NEXT
DEFAULT: MOV DL,AL ;其它键
MOV AH,2
INT 21H
NEXT: JMP TOP
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -