东风异客 发表于 2012-4-8 02:08:42

查找字符串中字符出现的每个位置


用串扫描实现
find proc near ;查找子程序
cld
mov di,offset string
mov cx,len
scan:
mov al,inch       ;串扫描
repnz scasb
jz zhaodao
lea dx,mess1 ;找不到则退出
mov ah,9
int 21h
jmp exit
zhaodao: ;找到
mov ince,cx ;保存cx
lea dx,is1
mov ah,9
int 21h
sub di,offset string
call output ;调用输出
lea dx,is2
mov ah,9
int 21h
mov cx,ince   
test cx,0 ;检查cx
jne scan ;重新扫描
exit:
lea dx,ag
mov ah,9
int 21h
ret
find endp

为什么只会扫描第一个位置的字符用串扫描实现
find proc near ;查找子程序
cld
mov di,offset string
mov cx,len
scan:
mov al,inch       ;串扫描
repnz scasb
jz zhaodao
lea dx,mess1 ;找不到则退出
mov ah,9
int 21h
jmp exit
zhaodao: ;找到
mov ince,cx ;保存cx
lea dx,is1
mov ah,9
int 21h
sub di,offset string
call output ;调用输出
lea dx,is2
mov ah,9
int 21h
mov cx,ince   
test cx,0 ;检查cx
jne scan ;重新扫描
exit:
lea dx,ag
mov ah,9
int 21h
ret
find endp

为什么只会扫描第一个位置的字符
页: [1]
查看完整版本: 查找字符串中字符出现的每个位置