zoukankan      html  css  js  c++  java
  • 汇编系列22--标志寄存器与JCC指令

    1、标志寄存器:EFLAGS

    0:CF---进位标志--carry flag

    2:PF---奇偶标志

    4:AF---辅助进位标志

    6:ZF---零标志

    7:SF---符号标志

    8:TF---单步标志--暂时用不到,学习如何实现调试器时学。

    9:IF---中断使能标志--暂时用不到,学中断门的时候再学习。

    10:DF---方向标志

    11:OF---溢出标志

    JCC指令--可修改EIP寄存器的值。

    前面学习,修改EIP的指令有,JMP,CALL,RET。

    JCC指令修改EIP不像JMP是无条件修改EIP的,而是根据标志寄存器里面的值决定的。

    若想很好的理解JCC指令,要理解标志寄存器。

     

     只统计最后一个字节1的个数,为偶数则P位为1,否则为0。

     

     

     

     

     

    汇编 JCC指令表

    JCC指条件跳转指令,CC就是指条件码。

    JCC指令中文含义英文含义检查符号位典型C应用
    JZ/JE 若为0则跳转;若相等则跳转 jump if zero;jump if equal ZF=1 if (i == j);if (i == 0);
    JNZ/JNE 若不为0则跳转;若不相等则跳转 jump if not zero;jump if not equal ZF=0 if (i != j);if (i != 0);
    JS 若为负则跳转 jump if sign SF=1 if (i < 0);
    JNS 若为正则跳转 jump if not sign SF=0 if (i > 0);
    JP/JPE 若1出现次数为偶数则跳转 jump if Parity (Even) PF=1 (null)
    JNP/JPO 若1出现次数为奇数则跳转 jump if not parity (odd) PF=0 (null)
    JO 若溢出则跳转 jump if overflow OF=1 (null)
    JNO 若无溢出则跳转 jump if not overflow OF=0 (null)
    JC/JB/JNAE 若进位则跳转;若低于则跳转;若不高于等于则跳转 jump if carry;jump if below;jump if not above equal CF=1 if (i < j);
    JNC/JNB/JAE 若无进位则跳转;若不低于则跳转;若高于等于则跳转; jump if not carry;jump if not below;jump if above equal CF=0 if (i >= j);
    JBE/JNA 若低于等于则跳转;若不高于则跳转 jump if below equal;jump if not above ZF=1或CF=1 if (i <= j);
    JNBE/JA 若不低于等于则跳转;若高于则跳转 jump if not below equal;jump if above ZF=0或CF=0 if (i > j);
    JL/JNGE 若小于则跳转;若不大于等于则跳转 jump if less;jump if not greater equal SF != OF if (si < sj);
    JNL/JGE 若不小于则跳转;若大于等于则跳转; jump if not less;jump if greater equal SF = OF if (si >= sj);
    JLE/JNG 若小于等于则跳转;若不大于则跳转 jump if less equal;jump if not greater ZF != OF 或 ZF=1 if (si <= sj);
    JNLE/JG 若不小于等于则跳转;若大于则跳转 jump if not less equal;jump if greater SF=0F 且 ZF=0 if(si>sj)

    参考:https://www.cnblogs.com/zhwer/p/12283220.html

  • 相关阅读:
    关于Java中System.currentTimeMillis和System.nanoTime的错误认识
    多线程以外
    vim 小技巧
    Virtual Box HostOnly网络模式配置
    How 30 Minutes a Day Can Increase Your Intelligence
    YUM命令使用
    Hash算法及其应用
    jetty + apache httpd 反向代理配置
    使用SCTP优化网络
    .NET书籍推荐
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/13923980.html
Copyright © 2011-2022 走看看