MIX减法如何与“打包”单词一起使用

时间:2012-04-08 19:31:47

标签: mix taocp

我正在阅读Knuth的书TAOCP。我只是学习一个简单的数学运算与寄存器。并且有一个减法操作的例子:

rA before: - | 1234 | 0| 0| 9
Cell 1000: - | 2000 |  150| 0
SUB 1000    
rA after:  + | 766  | 149 | ?

据我所知-1234 - ( - 2000)= 766 但是如何(0 | 0) - 150 = 149 ??

为什么9 - 0 =?

这些是“打包”的词。也许我需要阅读更多关于它们的信息。还是有人能解释一下吗

1 个答案:

答案 0 :(得分:2)

我相信逻辑是这样的:

  • 这台MIX机器是十进制机器;每个字节都有两位十进制数字。
  • rA包含值- 1234 00 00 09
  • 内存M包含值- 2000 0150 00
  • 使用普通小数运算从M减去rA得到766,014,991或+ 0766 0149 91

可替换地,

  • 这台MIX机器是二进制机器;每个字节保存8个二进制位。
  • rA包含值- 04D2 00 00 09
  • M包含值- 07D0 0096 00
  • 使用普通十六进制算法从M减去rA得到0x2FE0095F7,或+ 02FE 0095 F7,或十进制,+ 0766 0149 247 [ sic ]。< / LI>

因此,在不知道这个特定MIX机器的二进制/小数的情况下,我们无法确定结果的低位字节是什么。它保证是-9的单字节表示,但这是91十进制还是0xF7二进制是不可知的。

我现在没有TAOCP在我面前检查,但我相信这个逻辑是对?令人困惑的一个很好的解释。