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

📄 counta.asm

📁 fx.asm 反序输出 cpc.asm 人机对话 DECHEX.ASM 十进制到十六进制转换 PX.ASN 排序 DISP.ASM 显示非组合BCD码 COUNTA.ASM 统计字符A
💻 ASM
字号:
DATA    SEGMENT
BUFF    DB 50
        DB 0
        DB 50 DUP(?)
SHOW1   DB 'Input A String: $'
SHOW2   DB 'The Sum of Character A is: $'
SUMA    DB 0,0
DATA    ENDS
;------------------------------------
STACK   SEGMENT PARA STACK 'STACK'
        DB 100 DUP( ? )
STACK   ENDS
;------------------------------------
CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN    PROC FAR
START:  PUSH DS
        MOV AX,0
        PUSH AX
        MOV AX,DATA
        MOV DS,AX
;----------------------------------------
        CALL CRLF
        LEA DX,SHOW1
        MOV AH,09H
        INT 21H

        MOV DX,OFFSET BUFF
        MOV AH,0AH
        INT 21H

        MOV SI,OFFSET BUFF+2
        MOV CX,[SI-1]
        AND CX,00FFH
NEXT:   MOV AL,[SI]
        CMP AL,'A'
        JE COUNT
RTN:    INC SI
        LOOP NEXT

        MOV SUMA[1],-1

COUNT:  MOV BL,SUMA[0]
        INC BL
        MOV SUMA[0],BL
        CMP SUMA[1],-1
        JE EXIT
        JMP RTN

EXIT:   CALL CRLF
        MOV DX,OFFSET SHOW2
        MOV AH,09H
        INT 21H

        MOV DL,SUMA[0]
        DEC DL
        CMP DL,09H
        JBE NUMS
        ADD DL,06H

        PUSH DX
        AND DL,0F0H
        MOV CL,4
        SHR DL,CL
        ADD DL,30H
        MOV AH,02H
        INT 21H
        POP DX
NUMS:   AND DL,0FH
        ADD DL,30H
        MOV AH,02H
        INT 21H

        CALL CRLF
        RET
MAIN    ENDP        
;-----------------------------------
CRLF    PROC NEAR
        MOV DL,0AH
        MOV AH,02H
        INT 21H
        MOV DL,0DH
        MOV AH,02H
        INT 21H
        RET
CRLF    ENDP
;------------------------------------
CODE    ENDS
        END START


⌨️ 快捷键说明

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