CF、SF、OF、ZF标志位

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)-②与③

以上来自王道课本

以下来自王道视频

在这里插入图片描述

【图一】
在这里插入图片描述

【图二】
在这里插入图片描述

在这里插入图片描述

【图三】

posted @ 2022-04-29 17:10  Mercurows  阅读(11355)  评论(1)    收藏  举报