📄 分类统计字符个数.asm
字号:
DATAREA SEGMENT
mess1 db 'letter : ','$'
mess2 db 'digit : ','$'
mess3 db 'other : ','$'
mess4 db 0dh,0ah,'$'
mess5 db 'H','$'
letter db 0
digit db 0
other db 0
STRING LABEL BYTE
MAX DB 80
ACT DB ?
STR DB 80 dup(?)
DATAREA ENDS
MYPROG SEGMENT
ASSUME CS:MYPROG,DS:DATAREA
MAIN proc far
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATAREA
MOV DS,AX
mov es,AX
start: lea dx,STRING
MOV AH,0AH
INT 21H
SUB CH,CH
MOV CL,ACT
LEA SI,STR
LP1: MOV AL,[SI]
CMP AL,'0'
JB L1
CMP AL,'9'
JA L2
INC digit
JMP LP
L1: INC other
JMP LP
L2: CMP AL,'A'
JB L1
CMP AL,'Z'
JA L3
INC letter
JMP LP
L3: CMP AL,'a'
JB L1
CMP AL,'z'
JA L1
INC letter
JMP LP
LP: INC SI
LOOP LP1
MOV AH,09
lea dx,mess4
int 21h
LEA DX,mess1
INT 21H
MOV AL,letter
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV DL,AL
CMP DL,39H
JLE P1
ADD DL,07H
P1: MOV AH,02H
INT 21H
MOV DL,letter
AND DL,0FH
ADD DL,30H
CMP DL,39H
JLE P2
ADD DL,07H
P2: INT 21H
MOV AH,09
lea dx,mess5
int 21h
lea dx,mess4
int 21h
LEA DX,mess2
INT 21H
MOV AL,digit
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV DL,AL
CMP DL,39H
JLE P3
ADD DL,07H
P3: MOV AH,02H
INT 21H
MOV DL,digit
AND DL,0FH
ADD DL,30H
CMP DL,39H
JLE P4
ADD DL,07H
P4: INT 21H
MOV AH,09
lea dx,mess5
int 21h
lea dx,mess4
int 21h
LEA DX,mess3
INT 21H
MOV AL,other
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV DL,AL
CMP DL,39H
JLE P5
ADD DL,07H
P5: MOV AH,02H
INT 21H
MOV DL,other
AND DL,0FH
ADD DL,30H
CMP DL,39H
JLE P6
ADD DL,07H
P6: INT 21H
MOV AH,09
lea dx,mess5
int 21h
EXIT: RET
MAIN ENDP
MYPROG ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -