DATA SEGMENT
VAR DB 23,34,45,60,90
N EQU $-VAR
STR1 DB 'FIND!','$'
STR2 DB 'NOFIND!''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BG: MOV AX,DATA
MOV DS,AX
MOV CX,N
LEA SI,VAR
NEXT: CMP BYTE PTR[SI],60
JE LP1
INC SI
LOOP NEXT
MOV AH,9
LEA DX,STR2
INT 21H
JMP EXIT
LP1: MOV AH,9
LEA DX,STR1
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END BG
这个可以找到60但是不能统计啊 怎么改呢
DATA SEGMENT
VAR DB 23,34,45,60,90,00;00为结束
NUM DB 0 ;取一个变量
N EQU $-VAR
STR1 DB 'FIND!','$'
STR2 DB 'NOFIND!''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BG: MOV AX,DATA
MOV DS,AX
MOV CX,N
LEA SI,VAR
NEXT:
CMP BYTE PTR[SI],00
JE FINDOVER ;检查是否结束查找
CMP BYTE PTR[SI],60 ;是否为A,
JNE NOEQ ;为不为A则转
INC NUM ;为A计数
NOEQ: INC SI
LOOP NEXT
FINDOVER:
CMP NUM,00 ;看看计数器里有没有值
JNE LP1 ;有A则转
MOV AH,9 ;没有A提示
LEA DX,STR2
INT 21H
JMP EXIT
LP1:
;假设最多9个
MOV AL,NUM ;显示个数
ADD AL,30H
MOV DL,AL
MOV AH,2
int 21H ;2号功能调用
MOV AH,9 ;输出提示
LEA DX,STR1
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END BG