标题:
嵌入式C语言中CY进位标志位,用来存储移出位时的一点疑惑,还请大神助我一臂之力
[打印本页]
作者:
fengshiwuji
时间:
2020-7-7 12:18
标题:
嵌入式C语言中CY进位标志位,用来存储移出位时的一点疑惑,还请大神助我一臂之力
举个例子
51hei.png
(47.06 KB, 下载次数: 35)
下载附件
2020-7-7 18:00 上传
temp左移一位, 最高位被移出,是不是就存在了CY里面,然后Data = CY; 但是Data并没有进行移位,
那按照这种逻辑,是不是意味着CY每次赋值给Data都会覆盖掉前一次的值呢???
作者:
helloworld1949
时间:
2021-8-30 11:14
个人认为像是存在里面,实际意思还是这个CY进位标志本身功能来解释。
temp<<=1 , 我就看成temp=temp<<1,temp=temp*2,temp=temp+temp,这样就回归到 ADD功能,那CY在进行ADD操作时,如果发生进位就会变成1,没有进位就是0,这边CY没有被覆盖意思,只有CY每次变化的值会覆盖Data,这样就能达到你的输出目的了,无非就是0 1 变化。
EX:
1010+1010 = 1 0100 CY=1
0100+0100 = 0 1000 CY=0
1000+1000 = 1 0000 CY=1
0000+0000 = 0 0000 CY=0
这样就用CY完成了 发送 1 0 1 0
瞎扯淡的,仅供参考
作者:
188610329
时间:
2021-8-30 14:19
一般, DATA = CY 的话, DATA 应该是一个Bit,
而你DATA 是 unsigned char, 其实做的事,就是 把 CY 复制到 ACC的0位,然后把 ACC复制给DATA.即,会强制把CY,先补全成一个 unsigned char。再赋值给DATA.
所以,不管DATA中原先存的是什么的,最后DATA 要么 = 0x01, 要么 = 0x00
作者:
xuyaqi
时间:
2021-8-30 15:24
确实是 CY每次赋值给Data都会覆盖掉前一次的值。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1