标题:
关于单片机中CY标志位的一个疑惑
[打印本页]
作者:
小白君
时间:
2021-7-17 13:02
标题:
关于单片机中CY标志位的一个疑惑
CY:表示在进行运算是,有进位或借位时,则CY置1;
现在以4bit数据为例
有符号数范围:-8~7(1000~0111)
无符号数范围:0~15(0000~1111)
现我以无符号数进行减法计算
如2 - 1操作
2:0010 -1的补码:1111
那两者相加在最高位有进位,岂不是CY会置1,但实际2 - 1是没有进位的啊。
作者:
yzwzfyz
时间:
2021-7-17 17:51
CPU中的CY标记,可不管你是什么数据,正啊、负啊,统统的不管。
只要规定的操作对象(如A寄存器)的最高位(B8)。在操作中发生了进位,或借位,则CY=1,否则:CY=0。
影响CY的操作有:加、减、比较、带CY移位。但INC、DEC、DJNZ,不影响CY。
你要想彻底地了解CY,就必须通读CPU的指令系统!
作者:
Hephaestus
时间:
2021-7-17 18:07
首先,你做的不是减法,真正的减法2-1是不可能发生CY置1的情况。
其次,你想利用补码加法实现减法的想法也没有错误,2+(-1)=1的操作也是允许的,但指令集没有考虑过这种操作,就需要你自己开发一套运算结果处理程序,比如CY=1表示没有发生进位借位。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1