⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 分类统计字符个数.asm

📁 分类统计字符个数 汇编程序源代码
💻 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 + -