问题:
在字符串中查找第一个非'A'字符,该字符串长度保存在cx中,并且ds:di指向字符串。如果找到,BX指向非‘A’字符,找不到BX=-1

答案见图片。
JNE ok:这一句看不懂。这句话是依靠什么来跳转的?

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • JeniferJJJ

    16人对此回答表示赞同

    这个是对CMP AL,[DI]这句话执行后的ZF标志位的判断。

    如果找到了第一个非“A”字符,则LOOPE不满足,不会跳转到NEXT,继续执行下面的MOV BX,DI,然后跳转到结束,因为此时已经找到了第一个非"A"字符。BX指向非‘A’字符。

    假如这段字符串找完后还没有找个非“A”字符,即此时CX为0,LOOPE不满足,执行下面的MOV BX,DI,然后判断ZF(这个ZF是由CMP AL,[DI]计算出来的),ZF=0,JNE跳转不满足,
    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 编程dogge

    14人对此回答表示赞同

    用LOOPE指令控制循环,实现循环时要以下两个条件同时成立:
    一个是CX自减1后不为零;一个是ZF位等于1。

    LOOPE NEXT指令前面一条CMP AL,[DI]这个就是用来控制ZF位的。

    即循环结束有两种情况:
    一个是遍历完这条字符串,(CX)=0,则跳出循环
    一个是找到非'A'的字符,CMP后ZF=0,则跳出循环

    需要注意的第一点是:跳出循环后MOV BX,DI这条指令本身不影响ZF位的值
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部