计算机组成原理--恢复余数干什么?

  在进行除法运算时,也就是多次进行:移位、相减、移位、相减 ... 。

  移位,可以是 “被除数左移”,也可以是 “除数右移”。
  相减时,如果够减了则减,商上 1;如果不够减就不减,商则上 0。
  怎么知道够减不够减?
  人工计算时,就是用肉眼观察出来的。
  由计算机计算时,就又是一种方法了。
  在网络上,常常可以看到下面这种图片。

  在计算机专业的教材中,普遍都有图中这种说法。计算机专业的网友,一定都见到过的。
  但是,课本中这种说法,起码有三个错误。 其原因就是计算机专家,都不懂计算机的电路设计,冒充内行,蒙骗计算机专业的学生。

  图中的三个错误,下面慢慢的讲。

  先说说 ACC 吧。 ACC 是英文缩写,原文挺长,就不写了。 按照原文翻译过来,ACC 就称为:累加器。
  有的教材就说了:ACC 是 CPU 中最繁忙的寄存器。 做各种运算之前,要在 ACC 中存入一个有待运算的数据,运算完成后,ACC 中,就有了运算结果。 因为它有这种功能,所以,它才叫做 “累加器”。
  这说法,确实是没错的,大家也一定都听说过。

  但是,在计算机专业的教材中,就滥用了 ACC !
  书中(可参考上图)是把运算过程中的
“中间结果”,也送到了 ACC !
  大家都知道:做除法时,要进行多次的相减。 
  
每次相减的差,都送到 ACC ? 这是不可能的! ACC 不会这么忙的。
  只有当运算结束时,商(以及余数),才会送到 ACC。

  计算机专业的专家,编写教材时,就是这么能乱扯! 
  难道,它们还认为 ACC 不够繁忙?
  
以上,就是本文指出计算机专业教材的第一个错误。

  在做而论道设计的除法电路(点击查看)中,就没有陷入计算机专家挖的坑。

  在做而论道设计的电路中,减法电路算出的差,可以送到被减数的位置(去进行移位);也可以不送这个差,而是用原来不够减的被减数来移位。
  做而论道是用 ALU 芯片构成减法器的。它的功能是:被减数-减数,得出借位以及差值。
  两数相减时,够减了,借位就是 0,用这个 0 来控制,把差送过去(去进行移位)。
  两数相减时,不够减,借位就是 1,这个 1,就能控制不送差。

  这个差,在计算机专业的教材中,被称为:余数。
  其实,只有在除法运算结束时,最后一次的差,才能叫做余数。 中间结果,哪能叫做余数? 这么叫,好像是脑回路短路了。 不过,既然专家它们都这么叫,咱们也就随着来吧。

  不够减时的余数,当然就不能用来移位相减了。
  因此,计算机专家就提出了一个说法,叫做:恢复余数。
  但是,根据做而论道设计的电路可知,不够减时的余数,根本就没有保存。 因为这种余数,并不需要保存,你只要用原来的被减数进行移位,就完事大吉了。
  既然这种余数,并不用保存,实际上也没有保存,当然,也就不必闲扯什么恢复了。
  所以,计算机专家所说的 “恢复余数”,就是一个虚构的概念。
  计算机专家又以此借题发挥,编造出来一大滩无用的垃圾 “知识” !
  
以上,就是本文指出计算机专业教材的第二个错误。

  另外,商应该上 1 还是上 0 ?
  这就是极其简单事儿了!
  减法运算出现的借位,反一下相,就是商了。
  根本就不是教材所说的 “计算机很傻,默认上 1,再改为 0”。
  很傻的,不是计算机硬件电路,而是那些冒充内行来指导电路设计的专家。
  
以上,就是本文指出计算机专业教材的第三个错误。

  这篇博文,早就写了,一直也不敢发表。
  一旦发表,会伤到很多人的自尊心的。
  今天斗胆,就发了吧。 如果有人不认同这些说法,可以留言讨论。

  本文如有用词不当之处,做而论道先表示歉意了。
  

--本文完--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值