大家帮我看看这个汇编程序那个地方错了啊?

实现:匹配源串(si)‘howareyou?’中的子串(di)'are'字符串。用si存储源串,di存储子串。.modelsmall.stack.datasourcedb... 实现:匹配源串(si)‘how are you?’中的子串(di)'are'字符串。用si存储源串,di存储子串。
.model small
.stack
.data
source db 'How are you?'
source_len equ $-source;源串长度
target db 'are'
target_len equ $-target;子串长度
success db 'success$'
error db 'error$'
.code
.startup
mov ax,@data
mov ds,ax
mov ax,@data
mov es,ax;一定要初始化es!!!!
lea si,source
lea di,target
mov bx,source_len-target_len+1 ;设置循环的次数
push di ;把di压栈保存,因为每次比较都从子串的第一个字符开始比较
cld ;正向进行比较
compare:mov cx,target_len ;设置比较的次数
push si ;把si压栈保存,防止si改变
repz cmpsb ;循环比较
je show ;若要跳转,则比较的结果为0,既是ZF=1时才执行跳转于show中输出匹配成功的标志
pop si ;若匹配不成功,则恢复si的值
inc si ;使si指向原串的下一个字符
pop di ;恢复di
dec bx ;循环次数减1
jne compare ;当bx!=0的时候,继续循环
mov dx,offset error ;如果循环完成之后仍然没有找到,则输出错误信息
mov ah,9
int 21h
jmp final
show:mov dx,offset success ;输出正确的信息
mov ah,9
int 21h
final:.exit 0
end

为什么我用debug调试的时候si没有指向source呢?
为什么结果总是error?
展开
 我来答
百度网友4326a6254
2009-04-10 · TA获得超过108个赞
知道答主
回答量:79
采纳率:0%
帮助的人:0
展开全部
楼主抠门…五级了还不给分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式