第1个回答 推荐于2018-01-03
CODE SEGMENT
ASSUME CS:CODE
BUF DB '1qaz2w,,,,,sx3eASBX7dc'
NUM EQU $-BUF
START:
PUSH CS
POP DS
PUSH CS
POP ES
MOV CX,NUM
LEA SI,BUF
CLD
@M0:
LODSB
CALL ISNUMBER
CMP AH,1
JNE @M1
CALL DISPNUM
JMP @MM
@M1:
CALL ISALPHA
CMP AH,1
JNE @M2
CALL DISPALPHA
JMP @MM
@M2:
MOV AH,2
MOV DL,32
INT 21H
@MM:
LOOP @M0
MOV AH,4CH
INT 21H
;======================================
ISNUMBER PROC NEAR
CMP AL,'0'
JB @NONUMBER
CMP AL,'9'
JA @NONUMBER
MOV AH,1
@NUMEXIT:
RET
@NONUMBER: MOV AH,0
JMP @NUMEXIT
ISNUMBER ENDP
;=========================================
ISALPHA PROC NEAR
CMP AL,'A'
JB @NOALPHA
CMP AL,'z'
JA @NOALPHA
CMP AL,'Z'
JBE @ALPHA
CMP AL,'a'
JAE @ALPHA
JMP @NOALPHA
@ALPHA:
MOV AH,1
@ALPHAEXIT:
RET
@NOALPHA:
MOV AH,0
JMP @ALPHAEXIT
ISALPHA ENDP
;==========================================
DISPNUM PROC NEAR
PUSH AX
PUSH DX
MOV AH,2
MOV DL,'N'
INT 21H
POP DX
POP AX
RET
DISPNUM ENDP
;==========================================
DISPALPHA PROC NEAR
PUSH AX
PUSH DX
MOV AH,2
MOV DL,'A'
INT 21H
POP DX
POP AX
RET
DISPALPHA ENDP
;========================================
CODE ENDS
END START本回答被网友采纳