📄 chidouzi.asm
字号:
DATA SEGMENT
T DB "C",210 DUP ("*")," made by yahack","$"
D DB 25 DUP (' '),015,015,015,015,015,16," WELCOME ",17,015,015,015,015,10,13,18 DUP (' '),0001,002,001,002," made by yahack ",002,001,002,001,10,13,'$'
K DB 10,13,"w--up s--down a--left d--right q--EXIT$"
L DB 003," 1 Eat One By One ",003," ",005," 2 You can control the Cursors ",005,"$"
N=240
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,ES:DATA,DS:DATA,SS:STACK
BEGIN: MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA DX,D;提示
MOV AH,9
INT 21H
LEA DX,L;提示
MOV AH,9
INT 21H
MOV AH,8
INT 21H ;输入指令选择吃豆子的方式
CMP AL,'1'
JZ B
MOV DH,0;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV DL,0
MOV BH,0
MOV AH,2
INT 10H;将光标置于左上角
LEA DX,T
MOV AH,9
INT 21H
LEA DI,T
MOV AH,1 ;输入字符开始吃
INT 21H
CLD
AG: MOV DH,0
MOV DL,0
MOV BH,0
MOV AH,2
INT 10H;将光标置于左上角
LEA DX,T
MOV AH,9
INT 21H
PUSH CX ;保护现场
PUSH DX
MOV DX,0AFFH;延时
A1:
MOV CX,0FFFFH
A2:
LOOP A2
DEC DX
JNZ A1
POP DX
POP CX;延时
MOV AL,' ';将空格存入字符串
STOSB
MOV AL,'C';将'C'存入字符串
STOSB
DEC DI
CMP DI,N ;判断是否吃完
JE EXITA
JMP AG
EXITA: MOV AH,1
INT 21H
MOV AX,4C00H ;推出程序
INT 21H
B: LEA DX,k;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV AH,9
INT 21H;提示
MOV DI,0
MOV DH,0
MOV DL,0
MOV BH,0
MOV AH,2
INT 10H;将光标置于左上角
LEA DX,T
MOV AH,9
INT 21H
MOV DX,0
MOV DH,0
MOV DL,0
MOV BH,0
MOV AH,2
INT 10H;将光标置于左上角
BG: MOV AH,8
INT 21H
CMP AL,'w';判断方向
JZ B1
CMP AL,'s'
JZ B2
CMP AL,'a'
JZ B3
CMP AL,'d'
JZ B4
CMP AL,'q'
JZ EXIT
JMP BG
B1: DEC DH;根据判断结果对光标位置进行调整
JMP B5
B2: INC DH
JMP B5
B3: DEC DL
JMP B5
B4: INC DL
JMP B5
B5: MOV AH,0AH;在当前位置输出空格
MOV AL,' '
MOV BH,0
MOV CX,1
INT 10H
MOV AH,2;设置光标位置
MOV BH,0
MOV DX,DX;行,列
INT 10H
MOV AH,0AH;在当前位置输出C
MOV AL,'C'
MOV BH,0
MOV CX,1
INT 10H
JMP BG
EXIT: MOV AX,4C00H ;退出程序
INT 21H
CODE ENDS
END BEGIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -