www.b16.com

当前位置: 主页 > 日博娱乐网址 >

PSW状态字中的OV位如何确定微控制器程序溢出?有

更新时间:2019-11-04 00:10 来源:admin 作者:365bet体育开户 点击:
全部展开
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,因此计算机二进制111111111111111110 + 0000000000000011表示(-2)+3。
请注意,此时(-2)+3和上面的无符号数65534 + 3在CPU硬件中是相同的,两者的总和为1,CY指示器也为1。
但是,带符号的数字(-2)+ 3 = 1不会溢出。
因此,此时的CY指示器不能表示溢出。
另一个示例是无符号数字32863 + 8 = 32771,无进位,并且CY指示器为0。
此时没有溢出。
但是,如果存在带符号的数字32763 + 8,则二进制32773会溢出,因为它是1000000000000011,并被视为带负号的-32765作为带符号的数字。
有符号的16位数字不能表示32773。
不管是否存在带符号或无符号数字,从CPU二进制运算符进行加法和减法运算的操作都是相同的,但是“溢出”条件不同。
在大多数现代计算机上,对于无符号数字,可以使用CY指示器确定是否溢出。对于带符号的数字,应使用OV指示器确定是否溢出。
逻辑上基于OV品牌的是什么?
不同的计算机具有不同的实现,但是效果是相同的。
这是使它更容易理解的方法:“双符号位方法”。
具体来说,在加法或减法之前,首先根据带符号的数字规则将两个操作数扩展为17位。
即,符号位为0,后跟0,符号位为1。
然后按17位机器并相减得到17位结果。
如果17位结果的两个最高有效位(即双符号位)不同,则OV指示器设置为1。否则,OV指示器为零。
接下来,获得低16位作为最终结果。

上一篇:[ZL20A4矿用装载机]价格
下一篇:北京美术测试学习线,多少啊,Zhu桥美术测试样