查子串出现的次数
各位大侠 求助了 我下面的程序是实现在一个字符串中查找指定字符串出现的次数 写了好久了 还是没有彻底解决所有问题 请大家帮忙啊
data segment
str0 db 'abababa','$'
str1 db 'aba','$'
count db 0
data ends
stk segment stack
db 20 dup(?)
stk ends
code segment
assume cs:code,ds:data,ss:stk
start:
mov ax,data ;建立用户数据段
mov ds,ax
lea si,str0 ;定位原串的指针
again:
lea di,str1 ;定位字串的初始指针
compa0:
mov al,[si]
mov bl,[di]
cmp al,bl ;相等与否
jnz neq ;不相等转neq
push si
equ1:
inc di
neq:
inc si
cmp byte ptr [si],'$'
jz ending
cmp byte ptr [di],'$'
jnz next
lea di,str1
mov al,count
add al,1
mov count,al
pop si
inc si
jmp compa0
next:
mov al,[si]
mov bl,[di]
cmp al,bl
jnz neq
jmp equ1
ending:
mov ah,4ch
int 21h
code ends
end start