飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5315|回复: 7

[求助] 有一个比较指令我一直没弄明白是怎么回事

[复制链接]
  • TA的每日心情
    开心
    2024-2-23 20:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-5-16 17:14:50 | 显示全部楼层 |阅读模式
    在算法中经常看到这类语句:比如 TEST AL,AL,或   TEST EAX,EAX,
    我不明白的是明明是一样的寄存器,有什么好比较的饿,这种指令是什么意思呢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-5-17 09:10:55 | 显示全部楼层
    test 是 and(逻辑与)的意思,与 and 不同的是,这条指令不改变目的操作数的值,仅仅根据结果置标志位。使用方式TEST AL,AL,或 TEST EAX,EAX,后面常常跟jz/je,jnz/jne这些条件跳转指令,用来测试寄存器是否为0。
    个人理解,仅供参考。/:014
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-23 20:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-5-20 10:06:32 | 显示全部楼层
    原帖由 asdfslw 于 2009-5-17 09:10 发表
    test 是 and(逻辑与)的意思,与 and 不同的是,这条指令不改变目的操作数的值,仅仅根据结果置标志位。使用方式TEST AL,AL,或 TEST EAX,EAX,后面常常跟jz/je,jnz/jne这些条件跳转指令,用来测试寄存器是否为0。
    个 ...

    o...原来是用来测试寄存器是否为0 的哦,谢谢,明白拉

    但是 ,我想这2个AL 的指代对象应该不一样把

    [ 本帖最后由 dbsx 于 2009-5-20 10:07 编辑 ]
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-5-9 01:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2009-5-21 08:43:56 | 显示全部楼层
    我理解是不样,一个是固定值,另一个是你输入的字符通过运算后得出应该赋1还是赋0来决定的。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-23 20:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-5-22 23:02:20 | 显示全部楼层
    原帖由 老海 于 2009-5-21 08:43 发表
    我理解是不样,一个是固定值,另一个是你输入的字符通过运算后得出应该赋1还是赋0来决定的。

    那这个结果该怎么计算呢,比如test al,al ,一个al是1,另一个al是5(会不会出现0,1意外的值呢),这个怎么计算
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-5-9 01:01
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2009-5-27 07:13:20 | 显示全部楼层
    不可能出现1或0以外的,一个al是1,另一个al是5,test是and计算,也就是“与”运算,即:0001 and 0101,结果是1。

    [ 本帖最后由 老海 于 2009-5-27 07:20 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-5-28 22:28:08 | 显示全部楼层
    有整数值就是1,否则为0
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-23 20:03
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-5-29 20:42:45 | 显示全部楼层
    谢谢各位,理解了
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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