CODE SEGMENT
ASSUME CS:CODE
BUFF DB 13,10,'please input a char: ','$'
MSG1 DB 13,10,'right',13,10,'$'
MSG2 DB 13,10,'wrong',13,10,'$'
START: PUSH CS
POP DS
PUSH CS
POP ES
LEA DX,BUFF
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CALL ISLOW
CMP AH,1
JE @1
LEA DX,MSG2
MOV AH,9
INT 21H
JMP @2
@1:
LEA DX,MSG1
MOV AH,9
INT 21H
@2:
MOV AH,4CH
INT 21H
;========================================================
; al--为要判断的字符,ah--为返回结果
; ah=1 为是; ah=0 为否
ISDIGT PROC NEAR
PUSH ES
PUSH CX
PUSH DI
PUSHF
PUSH CS
POP ES
LEA DI,@DIGTCHS
MOV CX,10
REPNE SCASB
JE @ISDIGT1
MOV AH,0
JMP @ISDIGTEXIT
@ISDIGT1:
MOV AH,1
@ISDIGTEXIT:
POPF
POP DI
POP CX
POP ES
RET
@DIGTCHS DB '0123456789'
ISDIGT ENDP
;========================================================
; al--为要判断的字符,ah--为返回结果
; ah=1 为是; ah=0 为否
ISUP PROC NEAR
PUSH ES
PUSH CX
PUSH DI
PUSHF
PUSH CS
POP ES
LEA DI,@UPCHS
MOV CX,26
REPNE SCASB
JE @ISUP1
MOV AH,0
JMP @ISUPEXIT
@ISUP1:
MOV AH,1
@ISUPEXIT:
POPF
POP DI
POP CX
POP ES
RET
@UPCHS DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ISUP ENDP
;========================================================
; al--为要判断的字符,ah--为返回结果
; ah=1 为是; ah=0 为否
ISLOW PROC NEAR
PUSH ES
PUSH CX
PUSH DI
PUSHF
PUSH CS
POP ES
LEA DI,@LOWCHS
MOV CX,26
REPNE SCASB
JE @ISLOW1
MOV AH,0
JMP @ISLOWEXIT
@ISLOW1:
MOV AH,1
@ISLOWEXIT:
POPF
POP DI
POP CX
POP ES
RET
@LOWCHS DB 'abcdefghijklmnopqrstuvwxyz'
ISLOW ENDP
;========================================================
; al--为要判断的字符,ah--为返回结果
; ah=1 为是; ah=0 为否
ISCHAR PROC NEAR
PUSH ES
PUSH CX
PUSH DI
PUSHF
PUSH CS
POP ES
LEA DI,@CHS
MOV CX,52
REPNE SCASB
JE @ISCHAR1
MOV AH,0
JMP @ISCHAREXIT
@ISCHAR1:
MOV AH,1
@ISCHAREXIT:
POPF
POP DI
POP CX
POP ES
RET
@CHS DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
ISCHAR ENDP
;===============================================================
LFCR PROC NEAR
PUSH AX
PUSH DX
MOV AH,2
MOV DL,13
INT 21H
MOV DL,10
INT 21H
POP DX
POP AX
RET
LFCR ENDP
;=============================
CODE ENDS
END START
温馨提示:答案为网友推荐,仅供参考