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

📄 count4.asm

📁 统计字符串中字母和数字的个数
💻 ASM
字号:
        DATA  SEGMENT
       DATA1  DB        50 DUP(' ')
      COUNTV  DW        0
      COUNTS  DW        0
    MESSAGE1  DB        'COUNTV=','$'
    MESSAGE2  DB        'COUNTS=','$'
       DATA2  DW        10

        DATA  ENDS
        CODE  SEGMENT
              ASSUME    DS:DATA,CS:CODE
      STRDSP  MACRO     STRING
              MOV       AH,09H
              MOV       DX,OFFSET STRING
              INT       21H
              ENDM
      CURSOR  MACRO     ROW,COLUMN
              MOV       AH,02H
              MOV       BH,00
              MOV       DH,ROW
              MOV       DL,COLUMN
              INT       10H
              ENDM
      START:  MOV       AX,DATA
              MOV       DS,AX
              LEA       BX,DATA1
      INPUT:  MOV       AH,01H      ;输入一个字符
              INT       21H
              MOV       [BX],AL
              INC       BX
              CMP       AL,0DH
              JNZ       INPUT       ;循环直至回车
              MOV       COUNTV,0    ;计数器初始化
              MOV       COUNTS,0
              LEA       BX,DATA1
       NEXT:  MOV       CL,[BX]
              INC       BX
              CMP       CL,0DH
              JZ        DONE
              CMP       CL,30H
              JB        NEXT
              CMP       CL,3AH
              JB        CONTS
              CMP       CL,41H
              JB        NEXT
              CMP       CL,5BH
              JB        CONTV
              CMP       CL,61H
              JB        NEXT
              CMP       CL,7AH
              JB        CONTV
      CONTV:  INC       COUNTV
              JMP       NEXT
      CONTS:  INC       COUNTS
              JMP       NEXT
       DONE:  CURSOR    1,0
              STRDSP    MESSAGE1
              MOV       AX,COUNTV
              CMP       AX,10       ; 判断是否大于10
              JB        OUTPUTV1
              XOR       AX,AX
              XOR       DX,DX
              MOV       AX,COUNTV   ; 求余
              DIV       DATA2
              MOV       CX,DX
              ADD       AX,30H      ; 10进制转ASC码
              ADD       CX,30H
              MOV       DX,OFFSET AX
              MOV       AH,02H
              INT       21H
              MOV       DX,OFFSET CX
              MOV       AH,02H
              INT       21H
              JMP       OUTPUTS1
   OUTPUTV1:  ADD       AX,30H
              MOV       DX,OFFSET AX
              MOV       AH,02H
              INT       21H
   OUTPUTS1:  CURSOR    2,0
              STRDSP    MESSAGE2
              MOV       BX,COUNTS
              CMP       BX,10
              JB        OUTPUTS2
              XOR       AX,AX
              XOR       DX,DX
              MOV       AX,COUNTS
              DIV       DATA2
              MOV       CX,DX
              ADD       AX,30H
              ADD       CX,30H
              MOV       DX,OFFSET AX
              MOV       AH,02H
              INT       21H
              MOV       DX,OFFSET CX
              MOV       AH,02H
              INT       21H
              JMP       DISP
   OUTPUTS2:  ADD       BX,30H
              MOV       DX,OFFSET BX
              MOV       AH,02H
              INT       21H
       DISP:  MOV       AH,4CH
              INT       21H
        CODE  ENDS
              END       START


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -