counta.asm
来自「fx.asm 反序输出 cpc.asm 人机对话 DECHEX.ASM 」· 汇编 代码 · 共 92 行
ASM
92 行
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 + =
减小字号Ctrl + -
显示快捷键?