逆向文章
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(Event) | PF = 1 | (null) |
JNP/JPO | 若1出现次数为奇数,则跳转 | jump if 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 = OF 且 ZF = ) | if(si > sj) |
跳转前相关比较指令
cmp op1 op2 说明:第一次擦伤减去第二次操作数,但不影响第二次操作数的值,影响flag的 test op1 op2 注:逻辑和操作两个操作数,并根据操作结果设置相关标志位.他影响flag的 CF,OF而且还有影响