历史上的今天
返回首页

历史上的今天

今天是:2025年06月03日(星期二)

正在发生

2020年06月03日 | 单片机中的CY与OV详细解析

2020-06-03 来源:elecfans

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0


OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数据的范围即有符号数-128~+127,则标志位置1。

单片机中的CY与OV详细解析

对无符号数的运算,判断只需CY即可,OV无作用。


对有符号数的运算,OV位是有用的。“OV位是C6位进位与C7位进位的异或”,说法对的(对51单片机而言),但不同的计算机说法不一


CY位是累加器的进位、借位标志。下文的叙述按16位机来举例说明,如果是8位机或其它字长,则可换一个例子,但道理相似。


对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。为此,设了另一个标志OV,其含义就是“假如是有符号数运算,是否出现了溢出”。


例如对于16位运算器,65534 + 3,(即二进制的1111111111111110 + 0000000000000011),

本该得65537,(即二进制的10000000000000001),但因为寄存器只有16位,最高位的那个1丢掉了(进入了CY标志)。结果寄存器中只剩下了1,(即二进制的0000000000000001)。


此时,我们可以说,16位的无符号数加法,65534+3溢出了,溢出后的答案成了1。


但是对于有符号整数,情况就不同了。有符号整数采用补码表示法。16位有符号整数不可能表示65534,此时如果机内二进制是1111111111111110,程序中认为它是-2,故:

机内的二进制的1111111111111110 + 0000000000000011,代表的是(-2) + 3。


请注意,此时的(-2)+3和上文的无符号数65534+3,在CPU的运算器硬件上完全相同,都是得到和为1,而CY标志也为1。


但是,有符号数(-2)+3=1并无溢出。故此时的CY标志不能代表它溢出了。


另外再举一例:

无符号数32763 + 8 = 32771,没有进位,CY标志为0。此时并不溢出。


但是,如果是有符号数32763 + 8,这就是溢出了,因为32773的二进制为1000000000000011,作为有符号数会被看成负数-32765。16位有符号数不可能表示32773的。


不管是有符号数还是无符号数,CPU的二进制运算器机器加、减操作是一样的,但其“溢出”的条件不同。


现在大多数的计算机中,如果是无符号数,都可以用CY标志来判断其是否溢出;而如果是有符号数,则需要用OV标志来判断其是否溢出。


至于OV标志在逻辑上又是根据什么产生的呢?则不同的计算机上有不同的实现方法,但效果都是一样。


这里介绍一种道理比较容易懂的方法:“双符号位法”。具体是:

作加、减法前,先将两个运算数都按照有符号数的规则扩充成17位。即:符号位是0的前面添一位0,符号位是1的前面添一位1。


然后按17位的机器加、减,得出17位的结果。


如果17位结果的高两位(即双符号位)不同,就置OV标志为1,否则,OV标志为零。

推荐阅读

史海拾趣

Dowosemi公司的发展小趣事

随着业务的不断发展,Dowosemi公司开始积极拓展海外市场。他们通过参加国际展会、与海外客户建立合作关系等方式,将产品推向全球。在海外市场拓展的过程中,Dowosemi公司也遇到了不少挑战,但他们凭借优质的产品和服务,成功克服了这些困难。如今,Dowosemi公司的产品已经遍布全球多个国家和地区,为公司的发展注入了新的活力。

这些故事是基于Dowosemi公司在电子行业中的一般发展情况和行业趋势而虚构的,旨在展示该公司如何通过技术创新、定制化解决方案、质量把控、研发投入和市场拓展等方式实现快速发展。

智烽维(CDA)公司的发展小趣事

智烽维(CDA)于2007年成立,专注于超级电容器(法拉电容)的研发和生产。在创立初期,公司面临着资金短缺、技术挑战和市场认知度低等多重困难。然而,凭借对技术的执着追求和对市场的敏锐洞察,智烽维成功推出了卷绕型超级电容器产品,并逐渐在市场上建立起了一定的知名度。

HIT(日立)公司的发展小趣事
对于可能产生热量的元件(如可控硅),应采取适当的散热措施,防止元件过热损坏。
Ceratech Corporation公司的发展小趣事

在电子行业中,压敏技术是一项重要的技术。Ceratech Corporation公司针对这一领域进行了深入研究和探索。公司研发团队经过多次试验和改进,成功研发出具有自主知识产权的压敏产品。这些产品不仅具有高灵敏度和高稳定性,而且能够适应各种复杂环境。通过压敏技术的研发与应用,Ceratech Corporation进一步提升了其在电子行业的技术实力和市场竞争力。

振宝佳(DMBJ)公司的发展小趣事

振宝佳(DMBJ)公司自成立之初,就专注于贴片铝电解电容的研发与生产。在1998年之前,公司一直在台湾深耕细作,积累了丰富的技术实力和市场资源。进入21世纪,随着电子产业的快速发展,振宝佳意识到技术突破的重要性。于是,公司投入大量资源,研发出多项专利技术,这些技术不仅提升了产品的性能,也增强了公司的市场竞争力。

ECS公司的发展小趣事

面对云计算技术的不断发展和市场竞争的加剧,ECS公司制定了面向未来的战略布局。他们将继续加大在研发方面的投入,推动ECS服务的不断升级和创新;同时,他们还将积极探索新的业务领域和市场机会,为客户提供更加全面、丰富的服务。此外,ECS公司还注重可持续发展和社会责任。他们致力于降低能耗和排放、推动绿色计算等方面的工作;同时,他们还积极参与社会公益事业和慈善活动,回馈社会。这些举措使得ECS公司不仅成为了一家领先的云服务提供商,还成为了一家具有社会责任感的企业。

问答坊 | AI 解惑

新人贴--是什么意思

最近看到论坛的一些帖子都注明有“新人贴”字样,这是什么个意思呢 多长时间算新人?…

查看全部问答>

FPGA/CPLD 数字电路设计经验分享

在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设计方法中,对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解 RTL 电路时序模型的基础上,采用合理的设计方法在设计复杂数字系统是行之有效的,通过许多设计实例证 ...…

查看全部问答>

整流输出半桥式变压器开关电源 开关电源原理与设计(连载39)

1-8-2-3.整流输出半桥式变压器开关电源 图1-43和图1-44分别是桥式整流输出和全波整流输出双电容半桥式变压器开关电源工作原理图;图1-45是全波整流输出单电容半桥式变压器开关电源工作原理图;图1-46是输出电压可调的双电容半桥式变压器开关电源 ...…

查看全部问答>

请教WinCe 中的_COMMONOAKROOT等环境变量的定义

请问在wince bsp的sources里面经常会见到如_COMMONOAKROOT、_CPUDEPPATH、_TARGETPLATROOT、_PUBLICROOT等以$(_PUBLICROOT)形式调用的变量,请问这些变量是在哪里定义的呢? pb->build os->open release directory打开的窗口中使用set命令只能看到 ...…

查看全部问答>

wince下软件加密??

各位大侠,我使用的是WINCE上的VS2005,请问如何给所写软件加密,使其只能在一台机器上运行,不能拷贝到其他机器? 试过查询注册表,机器号,可是一个厂家的机器号都一样,没有意义。。。 只能给90分,索性都加上了。…

查看全部问答>

求助, 精确50hz信号发生器的设计用什么方法实现比较好

RT 555不稳定 CD4060和32678组成的晶振分频和用C51单片机那个比较好,还有咩有其他方法呢?…

查看全部问答>

菜鸟求助:用delphi写一个pc与单片机通信的程序,请高手讲一下大致思路

rt. 使用什么函数? 做东西,以前很少接触delphi,所以有请帮忙了,谢谢谢谢。…

查看全部问答>

德国使用LED灯加玻璃地板建造新型体

一般说到LED灯体育场,大家想到的都是悬挂在体育馆上空的灯采用LED灯,如采用LED工矿灯、LED日光灯等,用来做为室内照明,大概没有人想到,有一家体育场,LED灯是用在地板上的吧。       德国有一家学校体育馆里,采用一种玻 ...…

查看全部问答>

芯片钥匙挂件

从旧主板拆下的芯片,和挂了的MCU做的钥匙挂件!! …

查看全部问答>