要求是输入一个字符串,然后返回该字符串内含有的A和空格的个数,我写得代码在下面,输出总是把输入的字符串重复两次,测试输入不同时输出形式也略有不同,请高手指点~~~
DATAS SEGMENT
BUF DB 50,50 DUP(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MAIN PROC FAR
MOV AX,DATAS
MOV DS,AX
LEA DX,BUF
MOV AH,0AH
INT 21H
LEA SI,BUF+1
XOR CX,CX
CALL FIND1
LEA SI,BUF+1
XOR CX,CX
CALL FIND2
MOV AH,4CH
INT 21H
MAIN ENDP
FIND1 PROC NEAR
A1:
CMP BYTE PTR[SI],'$'
JE A3
CMP BYTE PTR[SI],'A'
JE A2
INC SI
JMP A1
A2:
INC CX
INC SI
JMP A1
A3:
MOV DX,CX
MOV AH,9
INT 21H
FIND1 ENDP
FIND2 PROC NEAR
B1:
CMP BYTE PTR[SI],'$'
JE B3
CMP BYTE PTR[SI],020H
JE B2
INC SI
JMP B1
B2:
INC CX
INC SI
JMP B1
B3:
MOV DX,CX
MOV AH,9
INT 21H
FIND2 ENDP
CODES ENDS
END START