OF(overflow flag) 溢出标志位
溢出标志位 OF = 1 表示带符号整数运算时结果发生溢出。对于无符号整数运算,OF没有意义。
对于有符号数的溢出判断方式有:
1)采用一位符号位:思想为:'-'+'-'='+' 或 '+'+'+'='+'则为溢出,其他情况无溢出
2)采用双符号位:s1、s2表示运算结果的两个符号位
① s1s2 = 00 表示正数,无溢出
② s1s2 = 01 表示结果正溢出 ,即 '-'+'-'='+',且s2表示当前运算符号'-',s1表示原本正确的符号'+'
③ s1s2 = 10 表示结果负溢出 ,即 '+'+'+'='-',且s2表示当前运算符号'+',s1表示原本正确的符号'-'
④ s1s2 = 11 表示结果为负数,无溢出
3)采用一位符号位,根据数据位的进位情况判断溢出
Cs 表示两数之间符号位运算的进位
C1 表示最高数值位
V = Cs⊕C1 ,若 V=0 表示无溢出;V=1 表示有溢出
注:最高位产生进位不一定有溢出,可参考【图三】-(3 第三问
ZF(zero flag) 零标志位
ZF = 1表示结果为0,无论是有符号数还是无符号数,ZF都有意义
CF(carry flag) 进/借位标志位
表示无符号整数数加/减运算时的进位/借位。
加法时,CF = 1表示无符号数加法溢出, CF=最高进位输出
减法时,CF = 1表示有借位,即不够减, CF=最高位进位输出取反
--可参考【图二】中右边四个运算式子
对于有有符号数的整数运算没有意义
但是真要看的话, CF=最高位进位输出
--可参考【图三】(2)、(3)问
SF(symbol flag) 符号标志位
结果为负,即符号位为1时SF=1,否则为0.
注意:当产生溢出时,说明符号标志位置出错,可参看OF-2)-②与③
以上来自王道课本
附
以下来自王道视频
【图一】
【图二】
在这里插入图片描述
【图三】