首页
社区
课程
招聘
[旧帖] [求助]有关程序问题 0.00雪花
发表于: 2007-6-9 22:36 2822

[旧帖] [求助]有关程序问题 0.00雪花

2007-6-9 22:36
2822
lea esi, [ebp + asciiz]              ;6 bytes
      s_check: lodsb                                       ;1 byte
                     test al, al                                ;2 bytes
                     jne s_check                            ;2 bytes
    小弟再看程序优化时看到上面的代码,有些不解,请各位指点。
    上面的指令说是运行后  到达字符串尾。
    但我这样子理解,lea esi, [ebp + asciiz]  赋值。
    lodsb ,将源串中的元素逐一装入AL或AX中。
    假设esi指向数据是-》12345678,那么第一个lodsb将1给al,接着test仅修改标志位。   
    因为al和al都是一样的所以不会改变,应该不等于零,会跳转。
    但问题是当执行倒最后了al值为8再test的话还是应该等于0的,也就是说test后的结果都为0,程序进入死循环……,不懂请各位指点。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
lea esi, [ebp + asciiz]              ;6 bytes
      s_check: lodsb                                ;1 byte
                test al, al                          ;2 bytes
                jne s_check                          ;2 bytes
抱歉,我没想到会是那个样子,我再发下
2007-6-9 22:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
-----lea esi, [ebp + asciiz]              ;6 bytes
s_check: lodsb                                ;1 byte
-----test al, al                          ;2 bytes
-----jne s_check                          ;2 bytes
2007-6-9 22:40
0
游客
登录 | 注册 方可回帖
返回
//