OF SF CF ZF 的判断方式以及例子

进位/借位标志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

posted @ 2025-09-17 10:19  是我,米老鼠  阅读(57)  评论(0)    收藏  举报