单片机中的进位和借位是什么意思?

如题所述

就是小学数学中学过的进位和借位的意思。

例如对于十进制,9 再加 1 就要进一位变成 10;对于二进制,1 再加 1 就要进一位变成 10。这时产生了进位。

例如对于十进制,11 减 2,个位的 1 不够减就要从高位借 1 得到 9;对于二进制,10 减 1,最低位的 0 不够减就要从高位借 1 得到 1。这时产生了借位。

温馨提示:内容为网友见解,仅供参考
第1个回答  2023-12-25
CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0
OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数据的范围即有符号数-128~+127,则标志位置1。

对无符号数的运算,判断只需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标志为零。

然后取其低16位作为最后结果。

单片机中的进位和借位是什么意思?
就是小学数学中学过的进位和借位的意思。例如对于十进制,9 再加 1 就要进一位变成 10;对于二进制,1 再加 1 就要进一位变成 10。这时产生了进位。例如对于十进制,11 减 2,个位的 1 不够减就要从高位借 1 得到 9;对于二进制,10 减 1,最低位的 0 不够减就要从高位借 1 得到 1。

单片机进位位怎么解释?
进位位是单片机特殊功能寄存器中非常重要的标志位,其中AC(半进位)和CY(进位)与加、减、乘、除算术运算指令密切相关,而CY的状态同时还受位运算指令的影响。在算术运算中,不论发生进位还是借位,进位标志的状态都会改变,这对于程序判断运算结果,决定程序走向是至关重要的,以上对进位位的解释仅限于51...

单片机中 借位标志CY 差的D7位需借位 这里的D7是什么意思
CY即C(进位标志或借位标志)进位:最高位大于1,益出进位(如:(二进制的)10000000+10000000此时进位标志位为1)借位:一个字节(8位)减数减被减数若减数最高位不够被减数减,则产生借位(如:01000000-11000000)

单片机算术指令中,C7、C6是什么意思?还有位7是第7位的意思吗
CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0 例:78H+97H(01111000+10010111)AC...

单片机中 进位标志CY 在加法中当有进位CY为1 那么在加法中 有借位时CY...
在减法中才有借位之说。在加法中,无进位时CY为0,有进位CY为1. 还有半进位AC, 即低4位向高4位的进位。减法中,有借位时,CY为1.

单片机的程序状态字寄存器psw中各位的定义分别是什么?
接下来,我将详细解释PSW中各位的含义和作用:1. CY:在进行加减乘除或移位等操作时,这个标志位会受到影响。当数据的最高位进行例如加法操作产生进位时,CY就会置1,表示有进位发生;否则CY等于0。在8位减法中,若运算结果有借位,CY同样会被置1。2. AC:这个标志位用于指示低半字节向高半字节的...

单片机的DJNZ 指令和cy位是什么意思
DJNZ就是将一个寄存器或直接寻址字节减一,不等于零则跳转到指定位置,等于零则继续向下运行。CY位就是进位\/借位位。

51单片机psw各个标志位的定义?
CY表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0。2.AC(Auxiliary Carry):与CY基本相同,不同的是AC表示的是低4位向高4位的进、借位。3.F0:该位是用户自己管理的标志位,用户可以根据自己的需要来设定。4.RS1、RS0:这两位用于选择当前工作...

单片机mcs_51cy的解释
CY---是51单片机的进位\/借位标志 做加法运算,就是进位 做减法运算,就是借位

简述MCS51单片机中程序状态寄存器PSW各位的含义。
AC(PSW.6):即PSW的D6位,辅助进位、借位标志。当D3向D4有借位或进位时,AC=1;否则AC=0.F0(PSW.5及PSW.1):即PSW的D5位,用户标志位;RS1及RS0(PSW.4及PSW.3):即PSW的D4、D3位,寄存器组选择控制位;OV(PSW.2):溢出标志。有溢出OV=1,否则OV=0;F1(PSW·1):保留位...

相似回答
大家正在搜