汇编—判断字符串
各位高手,小弟初学汇编,有一题实在难以想明白。望各位大大能不吝赐教,写出代码,在下感激不尽。自定义2字符,判断第二串在第一串中是否会出现并统计出现次数(重复与不重复)...
各位高手,小弟初学汇编,有一题实在难以想明白。望各位大大能不吝赐教,写出代码,在下感激不尽。
自定义2字符,判断第二串在第一串中是否会出现并统计出现次数(重复与不重复) 展开
自定义2字符,判断第二串在第一串中是否会出现并统计出现次数(重复与不重复) 展开
展开全部
如键盘输入:helloworld ,按回车之后,我输入h,就显示它出现的次数是1
dseg segment
buff db 12,?,12 dup(?)
dseg ends
cseg segment
assume ds:dseg,cs:cseg
begin: mov ax,dseg
mov ds,ax
lea dx,buff
mov ah,10
int 21h
;以上是输入字符串(最多11个字符,要是想输入更多,可以把buff变大,把12换成一个更大的数)
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
int 21h
;以上是换行
mov ah,1
int 21h
;读入要查找的字符个数
mov cl,buff+1
xor ch,ch
lea si,buff+2
xor dl,dl
again: cmp al,[si]
jnz next
inc dl
next: inc si
loop again
;统计个数记录在dl中
add dl,30h
mov ah,2
int 21h
;显示,只能是10以内的数,如果超过10,就要用除以10再分别显示了
mov ah,4ch
int 21h
cseg ends
end begin
dseg segment
buff db 12,?,12 dup(?)
dseg ends
cseg segment
assume ds:dseg,cs:cseg
begin: mov ax,dseg
mov ds,ax
lea dx,buff
mov ah,10
int 21h
;以上是输入字符串(最多11个字符,要是想输入更多,可以把buff变大,把12换成一个更大的数)
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
int 21h
;以上是换行
mov ah,1
int 21h
;读入要查找的字符个数
mov cl,buff+1
xor ch,ch
lea si,buff+2
xor dl,dl
again: cmp al,[si]
jnz next
inc dl
next: inc si
loop again
;统计个数记录在dl中
add dl,30h
mov ah,2
int 21h
;显示,只能是10以内的数,如果超过10,就要用除以10再分别显示了
mov ah,4ch
int 21h
cseg ends
end begin
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询