Intel base instruction -- 条件跳转

/*
 * ja
 */
    "jump if above",大于则跳转。    

    JA是使用CF标志位来决断的。

    cmp ebx, edx
    ja short ntdll.7c962559

    这表明EDX和EBX中的值都是被当作无符号数处理的。因为如果是有符号数,编译器应该用JG指令才对。
    JG才是这条指令的有符号数版本。


/*
 * jle
 */
    JLE, "Jump if Less or Equal".

    如果上一条CMP指令的第一个操作表达式小于或等于(不大于)第二个表达式,JLE将跳转到指令所标明的地址;
    如果不满足上述条件,则运行下一条指令。


/*
 * jne
 */
    JNE,"Jump if Not Equal".

    如果上一条CMP的两个操作符不相等,则进行相应跳转。


/*
 * jge
 */
    JGE,"Jump if Greater of Equal".
    
    如果CMP的第一个表达式大于或等于第二个表达式(不小于),则进行跳转。

/*
 * JA/JAE/JB/JBE 与 JG/JGE/JL/JLE 的区别
 */    
    JBE (jump if Below or Equal, 相当于JLE) 和 JAE (Jump if Above or Equal, 相当于JGE)。

    JA/JAE/JB/JBE 与 JG/JGE/JL/JLE 的区别?

    在于它们检查的标志位不同: 前者检查借/进位标志位CF(1意味着小于) 和零标志位ZF(1意味着相等),后者检查"SF XOR OF" (1意味着异号)
    和ZF。前者适用于unsigned类型数据的(CMP)运算,而后者的适用于signed类型数据的运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值