eax > ebx
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
eax = ebx
OF=0 SF=0 ZF=1 AF=0 PF=1 CF=0
eax < ebx
OF=0 SF=1 ZF=0 AF=1 PF=1 CF=1
其中,重点看CF、ZF、( SF 和 OF)
Jcc 的指令关于五个状态标志的十种状态分别有十种指令与之对应,如下所示:
标志 | 状态 | 指令 | 说明 |
ZF | ZF=1 | JZ | 相等/等于零 |
ZF=0 | JNZ | ---- | |
SF | SF=1 | JS | 符号为负 |
SF=0 | JNS | ---- | |
PF | PF=1 | JP | “1”的个数为偶 |
PF=0 | JNP | ---- | |
OF | OF=1 | JO | 有溢出 |
OF=0 | JNO | ---- | |
CF | CF=1 | JC | 有进位/小于 |
CF=0 | JNC | ---- |
!关于指令有多个助记符,此处仅列一个以示意
指令 | 状态 | 说明 |
JA | CF=0 & ZF=0 | 高于 |
JNA | CF=1 | ZF=1 | ---- |
JL | SF = OF | 小于 |
JNL | SF ≠ OF | ---- |
JG | (SF = OF) & (ZF = 0) | 大于 |
JNG | (SF ≠ OF) & (ZF = 1) | ---- |
JA 是对无符号整数的,JL、JG是对有符号整数的,参照状态中是否含SF即可辨别出。
结合前面所述的eax 和ebx 的比较,很容易做出判断。
另:高于也可以描述为不低于,小于亦可以描述为不大于,因为同一个指令会有多个助记符,所以具体怎么理解,视情况而定。