接上一篇说最复杂的条件码寄存器组合
所有组合都是基于a-b的前提。
| 后缀 | 逻辑运算(值为1) | 描述 | |
|---|---|---|---|
| e | ZF | 相等。此时ZF为1,a-b=0,相等 | |
| ne | ~ZF | 反之 | |
| s | SF | 负数。SF为1,设b=0,即a<0 | |
| ns | ~SF | 反之 | |
| l | SF^OF | 有符号的小于。当OF为0时,则代表没有溢出,此时SF必须为1,SF为1则代表结果为负。即a-b<0,也就是a<b,也就是小于的意思。 当OF为1时,则代表产生了溢出,而此时SF必须为0,也就是说结果最后为正数,那么此时则是负溢出,也可以得到a-b<0,即a<b. | |
| le | (SF^OF)\ | ZF | 有符号的小于等于。括号里代表小于,和等于作或运算 | 
| g | (SF^OF)&~ZF | 有符号的大于。小于且不等于 | |
| ge | ~(SF^OF) | 有符号的大于等于。不小于 | |
| b | CF | 无符号的小于。无符号减法只有在减出负数的时候才可能溢出,也就是说只要结果溢出了,那么一定有a-b<0 | |
| be | CF\ | ZF | 无符号的小于等于。 | 
| a | ~CF& ~ZF | 无符号的大于。无符号大于等于且不等于 | |
| ae | ~CF | s无符号大于等于 | 
