【分支结构】Jcc 的一些助记


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


其中,重点看CFZF、( 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 的比较,很容易做出判断。

另:高于也可以描述为不低于,小于亦可以描述为不大于,因为同一个指令会有多个助记符,所以具体怎么理解,视情况而定。

上一篇:SSM-SpringMVC-17:SpringMVC中深度剖析HandlerAdapter处理器适配器底层


下一篇:linux python 修改环境变量 添加自定义模块路径