发布网友 发布时间:2022-04-25 13:39
共5个回答
热心网友 时间:2023-10-03 05:26
0V——溢出标志,对于单字节的有符号数,若用最高位(b7)表示正、负号,则只有7位有效数位(b6~b0),能表示-128~+127之间的数。
运算结果超出了这个数值范围,就会发生溢出,此时0V=1,否则0V=0。此外,在执行乘法指令时,0V=1表示乘积超过255;在执行除法指令时,0V=1表示除数为0。
扩展资料
定时器中断由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1:TF0:定时器T0溢出中断请求。当定时器TO产生溢出时,TO中断请求标志TF0置1,请求中断处理。TF1:定时器T1溢出中断请求。当定时器Tl产生溢出时,T1中断请求标志TF1置1,请求中断处理。
F0,用户标志位:该位可由用户置1或清0,用于实现某些测控功能。
AC,半进位标志位:当CPU进行加法(或减法)运算时,如果低半字节(b3~b0)向高半字节(b7~b4)有进位(或借位),即b3向b4进位(或借位)时,AC置1,否则清0。AC可用于BCD码加法时的调整判别位。
CY,进位标志位: 当CPU进行加法(或减法)运算时,如果运算结果的最高位(b7)有进位(或借位),CY则置1,否则清0。
参考资料来源:百度百科-定时器中断
参考资料来源:百度百科-PSW
热心网友 时间:2023-10-03 05:27
首先,要知道,什么是溢出?
一般来说,容器太小,盛不下了,就会溢出。
在计算机方面,溢出,就是数据太大,超出了预定的范围。
数字,在计算机中,都是用机器码代表的。
人们最常用的“自然数”和“整数”,其表达范围如下:
机器码,无论代表什么数字,只要运算结果超出预定范围,就是【溢出】。
但是,在计算机专业人的嘴里,就不一样了。
【无符号数的溢出】,不叫溢出,要叫做【进位】。
【带符号数的溢出】,才叫做【溢出】。
搞计算机的这些人,基本概念不清,却自命不凡!
冒充脑回路清奇。。。正常人对此,就只能无语了。
---------------------------
那么,就按照计算机专业的说法吧:
溢出,是指“补码运算结果超出范围”。
溢出的特征,是“符号错误”。
知道了这些,判断是否溢出,就很容易了。
CPU 每次做完运算,就会给出结果和“进位标志位 CY”和“溢出标志位 OV”。
如果 OV=1,就代表:刚刚做的计算,发生了溢出。
人工判断是否溢出,有如下六个方法。
一、无符号数的运算,肯定不会溢出。只有进位。
二、只有:正+正、负+负,才有可能超出范围。不是这些,就绝不会溢出。
三、人工用十进制数值计算。和,如果没有超出范围,就没有溢出。
四、人工用二进制补码计算。和的符号,如果正确,就没有溢出。
五、编个程序,让计算机计算。然后观察溢出标志位,为零,就没有溢出。
六、人工用补码计算,如“最高位的进位”和“次高位的进位”相同,就没有溢出。
第六种,本是 CPU 的硬件所用的方法。
硬件,其理论基础,是很晦涩难懂的。
异或运算,一般也不需要初学者掌握。
但是,一些爱得瑟的老师,偏爱介绍这种方法。
却又拿不出任何的理论!
其实,这是很无聊的表现,就是想着难为学生。
热心网友 时间:2023-10-03 05:27
明确: 溢出是针对有符号数来说的,无符号数没有溢出问题热心网友 时间:2023-10-03 05:28
就是定时器/计数器T0,T1定时或计数满时就会发生溢出,就像盆里水满了你再往里面放水肯定会溢出啊,比如定时器工作在方式1时,计数满65536后,再次计数就溢出,从0重新开始计数,只不过单片机此时会置位TF0/TF1,以供编程者查询使用并作相应中断服务子程序,热心网友 时间:2023-10-03 05:29
溢出就是定时器的值到达最大范围了,例如16位定时器最大值65536,当定时器由0运行到65536即溢出了,再也装不下了,此时再加没任何意义,一般溢出时单片机就会将对应定时器的溢出标志至1,然后触发中断,告诉你需要定时的时间到了需要处理