📄 guess.asm
字号:
DATA SEGMENT
D1 DB 0dh, 0ah,'Too large,try one more time$'
D2 DB 0dh, 0ah,'Too bad,you have no chance!Game Over!$'
D3 DB 0dh, 0ah,'Too small,try one more time!$'
D_4 DB 0dh, 0ah,'Too bad,you have no chance!Game Over!$'
D5 DB 0dh, 0ah,'Excellent!!!$'
D6 DB 0dh, 0ah,'Very Good!!$'
D7 DB 0dh, 0ah,'Right!You found out it eventually.$'
WARN_1 DB 0dh, 0ah,'Would you like to play again(Yes/No)?$'
WARN_2 DB 0dh, 0ah,'I have a number which is between 0 and 100,can you find out it?you haveonly 10 times.Let us Start?!$'
WARN_3 DB 0dh, 0ah,'Sorry,you should input a number less than 101.$'
WARN_4 DB 0DH,0AH,'Now,you can input your guess:','$'
WARN_5 DB 0DH,0AH,'You input wrong order!$'
DST1 DB 12,0,12 DUP(?)
DST2 DB 8,0,8 DUP(?)
DST3 DB 8,0,8 DUP(?)
DAT1 DB ?
DAT2 DB ?
DAT3 DB 10,0,10 DUP(?)
DAT4 DB '100'
DAT5 DB 'Start'
DAT6 DB 'Yes'
DAT7 DB 'No'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA DX,WARN_2
MOV AH,09H
int 21h
ST1: LEA DX,DST1
MOV AH,0AH
int 21h
MOV BX,2
CLD
LEA DI,DST1[BX]
LEA SI,DAT5
MOV CX,5
REPE CMPSB
JNZ ST_1
JZ AG_ONCE
ST_1: LEA DX,WARN_5
MOV AH, 09H
INT 21H
JMP ST1
AG_ONCE: MOV AH,2CH
INT 21H
MOV DAT1,DL
MOV CX,0
AG1: INC CX
CMP CX,11
JGE AGAIN1
MOV BX,2
LEA DX,WARN_4
MOV AH,09H
INT 21H
LEA DX,DAT3
MOV AH,0AH
INT 21H
MOV AL,DAT3[BX-1]
CMP AL,1
JNE AST2
SUB DAT3[BX],30H
MOV DL,DAT3[BX]
MOV DAT2,DL
JMP ST3
EXIT1: JMP EXIT
AST2: CMP AL,2
JNZ ST2_1
MOV BX,2
SUB DAT3[BX],'0'
PUSH AX
MOV AL,DAT3[BX]
MOV DL,10
MUL DL
INC BX
SUB DAT3[BX],30H
MOV DL,DAT3[BX]
ADD AL,DL
MOV DAT2,AL
POP AX
JMP ST3
AG_1: JMP AG1
ST2_1: PUSH CX
MOV CX,3
CLD
LEA SI,DAT4
LEA DX,DAT3[2]
REPE CMPSB
JNE ST2_2
MOV DAT2,100
POP CX
JMP ST3
AGAIN1: JMP AGAIN
st2_2: POP CX
LEA DX,WARN_3
MOV AH,09H
INT 21H
JMP AG1
ST3: MOV AL,DAT2
CMP AL,DAT1
JNZ ST7
CMP CX,4
JGE ST4
LEA DX,D5
MOV AH,09H
INT 21H
JMP AGAIN
ST4: CMP CX,7
JGE ST5
LEA DX,D6
MOV AH,09H
INT 21H
JMP AGAIN
AG_ONCE1: JMP AG_ONCE
ST5: LEA DX,D7
MOV AH,09H
INT 21H
JMP AGAIN
ST7: MOV AL,DAT2
CMP AL,DAT1
JG ST9
CMP CX,10
JGE ST8
LEA DX,D3
MOV AH,09H
INT 21H
JMP AG_1
ST8: LEA DX,D_4
MOV AH,09H
INT 21H
JMP AGAIN
ST9: CMP CX,10
JGE ST10
LEA DX,D1
MOV AH,09H
INT 21H
JMP AG_1
ST10: LEA DX,D2
MOV AH,09H
INT 21H
JMP AGAIN
AGAIN: LEA DX, WARN_1
MOV AH,09H
INT 21H
LEA DX,DST2
MOV AH,0AH
INT 21H
MOV BX,2
CLD
LEA DI,DST2[BX]
LEA SI,DAT6
REPE CMPSB
JZ AG_ONCE1
CLD
MOV BX,2
MOV CX,2
LEA DI,DST2[BX]
LEA SI,DAT7
REPE CMPSB
JZ EXIT
LEA DX,WARN_5
MOV AH,09H
INT 21H
JMP AGAIN
EXIT: MOV AH ,4CH
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -