鱼C论坛

 找回密码
 立即注册
查看: 2499|回复: 4

求CPU做加法的逻辑思路

[复制链接]
头像被屏蔽
发表于 2012-3-14 23:17:46 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-15 03:27:12 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-15 22:31 编辑

我简单的说说吧
and 1,1 = 1   xor 1,1,0
and 1,0 = 0   xor 1,0,1
and 0,1,= 0   xor 0,1,1
and 0,0, =0   xor 0,0,0
你看(注意这里是二进制运算)
a     b     和
1 + 1 = 10,
1 + 0 = 01
0 + 1 = 01
0 + 0 = 00
请看两数相加的个位数,是不是和xor的结果一样呢?
再看和的十位(也就是左边的位)是不是和and操作的结果一样呢?
当执行 1 + 1 的时候, 我们先用xor 1,1 得出的结果也就是0,那么我们就用这0表示个位
我们再用 and 1,1 ,得出的结果是1,
把2个结果放在一起是不是就是10,也就是1+1(二进制运算)的结果
好,想象一下,如果你的CPU只有一位,1+1的结果却占有2位,这时候怎么表示10呢?
我们可以这样,假设xor操作的结果会放在一个一位的寄存器,这个寄存器如果是1,就表示两个数想加有进位
为0就是说没有,这时候你只要查看这个寄存器的值你就知道是否有进位了
希望能对你有所帮助
强烈推荐你去看看《编码的奥妙》,里面有CPU电路实现的原理
下载地址:http://www.fishc.com/a/book/huibian/627.html


已更正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-15 05:18:34 | 显示全部楼层
这个我还没有学到,看不懂代码...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
头像被屏蔽
 楼主| 发表于 2012-3-15 21:34:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-15 22:27:38 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-15 22:30 编辑

是and,半夜里面脑子有点混 - -:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 12:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表