鱼C论坛

 找回密码
 立即注册
查看: 5119|回复: 3

程序中有一处不明白,为什么不是用JZ,而是用JNZ

[复制链接]
发表于 2013-6-16 13:38:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好,我是一枚菜鸟,刚开始学汇编,现在正在看中山大学汇编教程,教程中有给出一道程序,具体内容如下:
有一串L字符的字符串存储于首地址为TALBE的存储器中。如要求在字符串中查找“空格”字符,找到则继续执行,如过没有找到则转到NOT-FOUND去执行,程序如下:
1                     MOV CX,L
2                     MOV SI,-1
3                     MOV AL,20H
4   NEXT:       INC SI
5                    CMP  AL,TABLE[SI]
6                    LOOPNE  NEXT
7                    JNZ   NOT-FOUND(?这行为什么不是用JZ,也就是说为什么不是写成  JZ  NOT-FOUND)
8                   . . . . . .
9  NOT-FOUND:
10                 . . . . . .

我不明白为什么第7行是用JNZ,而不是用JZ呢?打个比方,如果字符的长度L是10,第7个字符是空格,那么程序执行到第7次循环时就会跳出循环,此时执行JZ,判断CX是否为0,此时CX是7不为0,则顺序执行下面的程序,如果该字符串中是没有空格的,那么当循环到CX=0时,就会跳出循环,执行JZ,判断CX是否为0,此时CX=0,因此,程序应该跳到NOT-FOUND中去执行,不知道是不是应该是这样分析的。请教各位高手指点一二,谢谢大家啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-17 11:48:18 | 显示全部楼层
没有人啊,自己顶一下,求教啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-17 12:09:58 | 显示全部楼层
本着小甲鱼无私奉献精神,我来给你回复 要给我鱼币啊!LOOPNE的意思是当ZF=1或者CX=0的时候结束循环,所以当你L次都查完了之后还是没有相同的ZF还是为0所以用JNZ跳转,如果有相同的JNZ可以忽略!

评分

参与人数 1鱼币 +6 收起 理由
s0512 + 6 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-18 00:33:58 | 显示全部楼层
恩,好像有点明白了,谢谢,那个鱼币怎么给你啊,我鱼币不多啊,还要用来下载课件的,所以,只好给你3个鱼币啦,你不介意吧,呵呵!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 09:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表