这道例题中cy ov怎会是0和1呢?不是位7有借位接吻cy为1吗 位6也有借位接吻ov为0吗?

判断数据是否有溢出(OV) - zhliao - 博客园
随笔 - 119
CY位是累加器的进位、借位标志。下文的叙述按16位机来举例说明,如果是8位机或其它字长,则可换一个例子,但道理相似。
对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。为此,设了另一个标志OV,其含义就是&假如是有符号数运算,是否出现了溢出&。
例如对于16位运算器,65534 + 3,(即二进制的1110 + 0011),本该得65537,(即二进制的00001),但因为寄存器只有16位,最高位的那个1丢掉了(进入了CY标志)。结果寄存器中只剩下了1,(即二进制的0001)。
此时,我们可以说,16位的无符号数加法,65534+3溢出了,溢出后的答案成了1。
但是对于有符号整数,情况就不同了。有符号整数采用补码表示法。16位有符号整数不可能表示65534,此时如果机内二进制是1110,程序中认为它是-2,故:机内的二进制的1110 + 0011,代表的是(-2) + 3。
请注意,此时的(-2)+3和上文的无符号数65534+3,在CPU的运算器硬件上完全相同,都是得到和为1,而CY标志也为1。
但是,有符号数(-2)+3=1并无溢出。故此时的CY标志不能代表它溢出了。
另外再举一例:无符号数32763 + 8 = 32771,没有进位,CY标志为0。此时并不溢出。但是,如果是有符号数32763 + 8,这就是溢出了,因为32773的二进制为0011,作为有符号数会被看成负数-32765。16位有符号数不可能表示32773的。
不管是有符号数还是无符号数,CPU的二进制运算器机器加、减操作是一样的,但其&溢出&的条件不同。现在大多数的计算机中,如果是无符号数,都可以用CY标志来判断其是否溢出;而如果是有符号数,则需要用OV标志来判断其是否溢出。
至于OV标志在逻辑上又是根据什么产生的呢?则不同的计算机上有不同的实现方法,但效果都是一样。这里介绍一种道理比较容易懂的方法:&双符号位法&。具体是:作加、减法前,先将两个运算数都按照有符号数的规则扩充成17位。即:符号位是0的前面添一位0,符号位是1的前面添一位1。然后按17位的机器加、减,得出17位的结果。如果17位结果的高两位(即双符号位)不同,就置OV标志为1,否则,OV标志为零。然后取其低16位作为最后结果。后使用快捷导航没有帐号?
查看: 3519|回复: 3
注册时间最后登录阅读权限30积分466精华0帖子
秀才, 积分 466, 距离下一级还需 34 积分
TA的每日心情慵懒 09:29签到天数: 3 天[LV.2]偶尔看看I
本帖最后由 小菜儿 于
17:28 编辑
[转]51单片机PSW之CY与OV的联系与区别
1.先从计算机存储的机制说起:直接说有符号数,先说一个字节的的补码表示范围为-2^7~(2^7-1),即-128~127。当X&0时,X[原码]=[反码]=[补码];当X=0时,存在[+0]和[-0]两种表示形式,[+0]原=,[+0]反=,[+0]补=[-0]原=,[-0]反=,[-0]补=当X&0时:a.负数的原码:最高位D7为1,剩余D6~D1为其绝对值二进制表示。 例如:-1的原码为;b.负数的反码:最高位D7仍保留为1,剩余D6~D1为其绝对值二进制按位取反。例如:-1的反码为;c.负数的补码:补码为对应反码加1。例如:-1的补码为。有符号数在计算机中是以补码形式存在的。
17:27 上传
总结:当X&0时,X[补码]=256-|X|=255--|X|+1=--|X|+1=X[反码]+1,256为一个字节的模的大小,为2^8。原码表示范围:最小值:=-127,最大值为为+127,故范围为-127~(+127),其中包括[+0]原和[-0]原,共2^8个数;反码表示范围:最小值:=-127,最大值为为+127,故范围为-127~(+127),其中包括[+0]反和[-0]反,共2^8个数;补码表示范围:最小值按理来说应该是=-127,但因为[+0]补=[-0]补=,从-127~+127共255个数,少一个数怎么办呢?-1的补码是确定无异的,为,-128作为一个字节所能表示的有符号数的最小值,应是(-1)一直减1得到的,所以-128的补码为。2.结合51单片机,重点对程序状态字PSW之中的CY和OV位进行分析
51单片机之PSW位
17:27 上传
PSW作为一个8位的特殊功能寄存器,记录了当前有关CPU状态的各种信息,分为两类:一类是当前指令执行结果的状态信息,如CY/AC/OV/P;另一类是存放控制信息,如RS1/RS0/F0。先介绍除了CY+OV之外的标志位:AC(PSW.7)辅助进位标志:当进行加法或减法操作而产生低四位向高四位进位或者借位时,AC将被硬件置位(AC=1),否则清零(AC=0),AC主要用于二-十进制加法调整;F0(PSW.5)用户标志位:是用户自定义的一个标志位,可以用软件置位或者清零,常用来控制程序的流向;RS1、RS0(PSW.4、PSW.3)工作寄存器选择控制标志:可以软件置1或者清零来确定工作寄存器区;P(PSW.0)奇偶标志位:每个指令周期都由硬件来置位或者清零,以表示累加器A中1的位数的奇偶数。如果位数为奇数,则P=1,如果值为1的个数为偶数,则P=0.&&
注册时间最后登录阅读权限100积分7603精华4帖子
TA的每日心情奋斗昨天&08:39签到天数: 1238 天[LV.10]以坛为家III
说的很清楚透彻。
注册时间最后登录阅读权限10积分5精华0帖子
白丁, 积分 5, 距离下一级还需 45 积分
该用户从未签到
说的很清楚透彻
注册时间最后登录阅读权限60积分3214精华0帖子
状元, 积分 3214, 距离下一级还需 6786 积分
TA的每日心情奋斗 10:07签到天数: 288 天[LV.8]以坛为家I
楼主太好了,支持一下!
喜欢在构思妙想,电子产品DIY是工作,也是一种爱好。
爱板会员勋章
注册成为爱板网会员
发帖机器勋章
在论坛积极发帖,数量巨大,质量较高
在线达人勋章
在线时间长,且活跃度高
活跃会员勋章
经常参与各类话题的讨论,发帖内容较有主见
论坛骨干勋章
在论坛积极发帖,并积极与坛友交流互动,成为论坛骨干力量
在线之王勋章
在线时间非常长,且活跃度高
站长推荐 /7
对于初学者来说,一个适合的FPGA开发板平台可以让你的学习、研发达到事半功倍的效果。今天,爱板网将为大家介绍一款通用性高、资料丰富、板卡做工精致的FPGA开发平台——由锆石科技推出的A4 FPGA开发板…立即查看!
EVB-335X-II是CoM-335X工控模块的评估系统,为客户提供CoM-335X的原始参考设计,方便客户快速应用。立即查看申请!
丰富的视频教程和应用文档都在这里!8月1日之前回答相关问题,还能获得精美的奖品。立即点击查看
即日起至7月22日,回答大联大相关问题,就有机会获得高端四核电脑主机等众多奖品!立即参加!
现爱板网推出【每日一帖 | 21 天坚持(有奖)成习惯作战记】活动——发帖可获得一定数量的T币,且不同数目的T币可用于兑换不同的奖品。每天的发帖数不限……接受任务挑战!
7月31日之前,爱板网联合机智云为感兴趣的爱板网友推出机智云 Gokit 3(S) - SoC版(Gokit3.2)免费试用申请通道!快来申请吧!
ADI推出了基于电化学传感器的低功耗、便携式一氧化碳有毒气体检测方案,并且可以通过适当的改变电路达到不同的有毒气体的检测,为人们的生活、生产过程提供健康的守护……查看详情!
Powered by Discuz!单片机中的加法指令,进位和半进位问题.+)————————1 这个结果中,位7是哪个数啊.哪一位.位3又是哪一位,怎么看有没进位呢?可是,如果位7有进位,则cy=1.位3有进位,ac=1.这题的cy和ac都等于1.能进一步说明吗.位3哪里有进位.可是这里不是有位8吗 .不是等于0吗
Yoka是好人75
位3进位到位4了,同时AC=1位7进位,因为没有位8所以只有CY变成18位机,从右到左对应从 位0 到 位7
为您推荐:
其他类似问题
扫描下载二维码单片机中 进位标志CY 在加法中当有进位CY为1 那么在加法中 有借位时CY为0吗_百度知道
单片机中 进位标志CY 在加法中当有进位CY为1 那么在加法中 有借位时CY为0吗
提问者采纳
#80HSUBB A,减法有借位CY=1例如,加法有进位CY=1进位和借位都是CY:MOV A,#80H此时CY=1CLR CMOV A,#81HADD A
clr c是什么意思的?
使CY=0,防止对之后运算的影响。
提问者评价
来自团队:
其他类似问题
为您推荐:
其他2条回答
减法中,有进位CY为1,CY为1. 还有半进位AC。在加法中,有借位时在减法中才有借位之说,无进位时CY为0, 即低4位向高4位的进位
减法中是借位,有借位为1.由于在计算机中(包括单片机)减法往往通过补码用加法来实现,所以借与进位一回事。
不太明白,能具体列举一下吗
借位的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁单片机程序状态字PSW的OV位到底是怎么判断溢出的?有CY位不就够了么?_百度知道
单片机程序状态字PSW的OV位到底是怎么判断溢出的?有CY位不就够了么?
提问者采纳
就置OV标志为1,溢出后的答案成了1,CPU的二进制运算器机器加,都是得到和为1,故,此时如果机内二进制是1110。但是,代表的是(-2) + 3,作为有符号数会被看成负数-3 + 3。但是,设了另一个标志OV,最高位的那个1丢掉了(进入了CY标志),本该得65537,符号位是1的前面添一位1,这就是溢出了。对于无符号数的运算,都可以用CY标志来判断其是否溢出,(即二进制的0001),但因为寄存器只有16位,则需要用OV标志来判断其是否溢出。故此时的CY标志不能代表它溢出了,CY位就可以表示其是否溢出。然后按17位的机器加,但道理相似,先将两个运算数都按照有符号数的规则扩充成17位:机内的二进制的1110 + 0011、借位标志,16位的无符号数加法。然后取其低16位作为最后结果。另外再举一例。不管是有符号数还是无符号数CY位是累加器的进位:作加。此时。请注意,其含义就是“假如是有符号数运算。但如果是有符号数?则不同的计算机上有不同的实现方法。这里介绍一种道理比较容易懂的方法。结果寄存器中只剩下了1;而如果是有符号数、减、减操作是一样的,如果是有符号数32763 + 8,有符号数(-2)+3=1并无溢出:“双符号位法”,我们可以说。现在大多数的计算机中,但效果都是一样,OV标志为零。即,65534+3溢出了,则不能按CY标志来判断了。为此。有符号整数采用补码表示法。至于OV标志在逻辑上又是根据什么产生的呢,否则。下文的叙述按16位机来举例说明,没有进位。16位有符号数不可能表示32773的,而CY标志也为1,但其“溢出”的条件不同:无符号数32763 + 8 = 32771,如果是无符号数,CY标志为0。此时并不溢出,如果是8位机或其它字长。16位有符号整数不可能表示65534,情况就不同了,(即二进制的1110 + 0011),得出17位的结果,因为32773的二进制为0011,此时的(-2)+3和上文的无符号数65534+3。具体是:符号位是0的前面添一位0,则可换一个例子,是否出现了溢出”。但是对于有符号整数,程序中认为它是-2,在CPU的运算器硬件上完全相同。例如对于16位运算器。如果17位结果的高两位(即双符号位)不同,(即二进制的00001)、减法前
提问者评价
thx有了例子之后就很好理解了
其他类似问题
为您推荐:
其他2条回答
CPU就令OV=1单片机程序状态字PSW的OV位到底是怎么判断溢出的,是CPU判断的。发生了溢出?----溢出
CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0 OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数据的范围即有符号数-128~+127,则标志位置1。
我看到一种说法跟你这个很像,他说OV位只用于有符号位的运算能不能举个简单的例子另一种说法是OV位是C6位进位与C7位进位的异或,对不对
你提的这个问题很好,前面我给的答复,只是PSW对这两个位的定义。对无符号数的运算,判断只需CY即可,OV无作用。对有符号数的运算,OV位是有用的。“OV位是C6位进位与C7位进位的异或”,说法对的(对51单片机而言),但不同的计算机说法不一,我同意楼下“zhong4924”的说法。
您可能关注的推广
程序状态字的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 借位接吻 的文章

 

随机推荐