JCC指令

JCC指令也只影响EIP
首先要明确一点,所有的判断跳转指令都是根据标志位来进行判断的
1、 JE, JZ        结果为零则跳转(相等时跳转) ZF=1
2、 JNE, JNZ 结果不为零则跳转(不相等时跳转)  ZF=0
3、 JS 结果为负则跳转 SF=1
4、 JNS 结果为非负则跳转SF=0
5、 JP, JPE    结果中1的个数为偶数则跳转PF=1
6、 JNP, JPO    结果中1的个数为偶数则跳转PF=0
7、 JO    结果溢出了则跳 OF=1
8、 JNO    结果没有溢出则跳转OF=0
9、 JB, JNAE    小于则跳转 (无符号数)CF=1
10、 JNB, JAE    大于等于则跳转 (无符号数)CF=0
11、 JBE, JNA    小于等于则跳转 (无符号数)CF=1 or ZF=1
12、 JNBE, JA    大于则跳转(无符号数)CF=0 and ZF=0
13、 JL, JNGE    小于则跳转 (有符号数)SF≠ OF
14、 JNL, JGE    大于等于则跳转 (有符号数)SF=OF
15、 JLE, JNG    小于等于则跳转 (有符号数)ZF=1 or SF≠ OF
16、 JNLE, JG    大于则跳转(有符号数)ZF=0 and SF=OF

有符号无符号的区别:
CMP AL,CL JG 0x12345678 JA 0x12345678

  英文全称 含义 判断标志位
JE, JZ jump equal,jump zero 结果为零则跳转(相等时跳转) ZF=1
JNE, JNZ jump not equal,jump not zero 结果不为零则跳转(不相等时跳转) ZF=0
JS jump sign 结果为负则跳转 SF=1
JNS jump  not sign 结果为非负则跳转 SF=0
JP, JPE jump parity,jump parity even 结果中1的个数为偶数则跳转 PF=1
JNP, JPO jump not parity,jump parity odd 结果中1的个数为偶数则跳转 PF=0
JO jump overflow 结果溢出了则跳转 OF=1
JNO jump not overflow 结果没有溢出则跳转 OF=0
JB, JNAE jump below,jump not above  equal 小于则跳转 (无符号数) CF=1
JNB, JAE jump not below,jump above  equal 大于等于则跳转 (无符号数) CF=0
JBE, JNA jump below equal,jump not above 小于等于则跳转 (无符号数) CF=1 or ZF=1
JNBE, JA jump not below equal,jump above 大于则跳转(无符号数) CF=0 and ZF=0
JL, JNGE jump less,jump not greater  equal 小于则跳转 (有符号数) SF≠ OF
JNL, JGE jump not less,jump greater  equal 大于等于则跳转 (有符号数) SF=OF
JLE, JNG jump less equal,jump not greater 小于等于则跳转 (有符号数) ZF=1 or SF≠ OF
JNLE, JG jump not less equal,jump greater 大于则跳转(有符号数) ZF=0 and SF=OF
发表评论 / Comment

用心评论~