📄 考题二合一.asm
字号:
;统计输入字符的总个数和其中字母,数字和其他字符的个数
DATA SEGMENT
CHAR1 DB 51H,0,51H DUP(0)
CHAR DB 0H
DIGITAL DB 0H
OTHERS DB 0H
NUM DB 0H
STRING DB 'PLEASE ENTER A STRING NO LONGER THAN 80:',0AH,0DH,'$'
STRING1 DB 0AH,0DH,'THE NUMBER OF LETTER IS:','$'
STRING2 DB 0AH,0DH,'THE NUMBER OF DIGITAL IS:','$'
STRING3 DB 0AH,0DH,'THE NUMBER OF OTHERS IS:','$'
STRING5 DB 0AH,0DH,'THE NUMBER OF CHAR IS:','$'
STRING4 DB 3 DUP(0)
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV DX,OFFSET CHAR1
MOV AH,0AH
INT 21H
MOV CL,CHAR1[1]
XOR CH,CH
MOV SI,2
LOP: INC NUM
MOV AL,CHAR1[SI]
CMP AL,'0'
JC LOP1
CMP AL,3AH
JNC LOP1
INC DIGITAL
INC SI
LOOP LOP
JMP LOP4
LOP1: CMP AL,'A'
JC LOP2
CMP AL,5BH
JNC LOP2
INC CHAR
INC SI
LOOP LOP
JMP LOP4
LOP2: CMP AL,'a'
JC LOP3
CMP AL,7BH
JNC LOP3
INC CHAR
INC SI
LOOP LOP
JMP LOP4
LOP3: INC OTHERS
INC SI
LOOP LOP
LOP4: MOV AL,NUM
CALL TRAN
MOV DX,OFFSET STRING5
MOV AH,09H
INT 21H
MOV DX,OFFSET STRING4
MOV AH,09H
INT 21H
MOV AL,CHAR
CALL TRAN
MOV DX,OFFSET STRING1
MOV AH,09H
INT 21H
MOV DX,OFFSET STRING4
MOV AH,09H
INT 21H
MOV AL,DIGITAL
CALL TRAN
MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
MOV DX,OFFSET STRING4
MOV AH,09H
INT 21H
MOV AL,OTHERS
CALL TRAN
MOV DX,OFFSET STRING3
MOV AH,09H
INT 21H
MOV DX,OFFSET STRING4
MOV AH,09H
INT 21H
MOV NUM,0
MOV CHAR,0
MOV DIGITAL,0
MOV OTHERS,0
MOV AH,4CH
INT 21H
TRAN PROC
XOR AH,AH
MOV BL,10
DIV BL
MOV STRING4[0],AL
ADD STRING4[0],30H
MOV STRING4[1],AH
ADD STRING4[1],30H
MOV STRING4[2],24H
RET
TRAN ENDP
COSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -