条件码寄存器中保存着单个位的条件码,由CPU维护,如:
CF:进位标志
ZF:零标志
SF:符号标志
OF:溢出标志
有几类指令能够修改条件码:
- 算术指令:既改变操作数,也有肯能改变条件码。
- CMP指令:右操作数减左操作数,只可能改变条件码。
- TEST指令:两操作数相与,只可能改变条件码。
条件码寄存器不能直接读取,有三种方法:
- set指令:根据条件码,设置一个字节。
- jump指令:根据条件码进行跳转,即控制的条件转移。
- cmov条件传送指令:根据条件码决定是否进行mov操作(其性能要优于控制的条件转移P141)。
注意,这些指令判断条件是否满足,是根据条件码的组合决定的。