进位/借位标志CF,最高位有进位/错位时CF=1
零标志ZF,运算结果为0时,ZF=1
符号标志SF,运算结果为负,SF=1
溢出标志OF,运算结果有溢出,OF=1
OF(溢出)的判断:
二进制相加后,最高位与次高位异或。
例如
\[FFE8H +7FE6H=7FCEH
\]
\[1111 1111 1110 1000 +0111 1111 1110 0110
\]
1111 1111 1110 1000 +
0111 1111 1110 0110
此时最高位需要进1,次高位也是进1
\[1\oplus1=0
\]
此时OF=0
SF(符号数)的判断:
判断二进制结果的第一位数字即可
例如
\[FFE8H +7FE6H=7FCEH
\]
\[1111 1111 1110 1000 +0111 1111 1110 0110
\]
1111 1111 1110 1000 +
0111 1111 1110 0110
(1) 0111 1111 1100 1110
此时最高位为0,因此SF=0
CF(进位)判断
从硬件上来说,CF的判断为sub位异或Cout位
Cout位代表最高位的进位数
sub位代表是否是减法,加法为0,减法为1
例如
\[FFE8H +7FE6H=7FCEH
\]
\[1111 1111 1110 1000 +0111 1111 1110 0110
\]
1111 1111 1110 1000 +
0111 1111 1110 0110
此时最高位进位(Cout)为1
同时这个是加法 sub=0
\[1\oplus0=1
\]
此时CF=1
ZF(零标志)判断
只要最后结果不是全0,那么ZF就是0
例如
\[FFE8H +7FE6H=7FCEH
\]
\[1111 1111 1110 1000 +0111 1111 1110 0110
\]
1111 1111 1110 1000 +
0111 1111 1110 0110
此时必然不全0
ZF=0