我正在读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=?
这些都是“打包”的词。也许我需要读更多关于他们的书。或者有人能解释一下吗?
发布于 2013-06-20 07:07:35
我相信逻辑是这样的:
这种混合机器是一个十进制机器;每个字节包含两个十进制digits.
rA包含值- 1234 00 00 09.
M M rA得到的值766,014,991,或+ 0766 0149 91.或者,
这台MIX机器是一台二进制机器;每个字节包含8个二进制bits.
rA包含值- 04D2 00 00 09.
M包含值- 07D0 0096 00.
M rA使用普通的十六进制运算得到0x2FE0095F7,或+ 02FE 0095 F7,或十进制的+ 0766 0149 247 sic。因此,如果不知道这台混合机器的二进制/十进制,我们就不能确定结果的低位字节是多少。可以保证它是-9的单字节表示,但是这是91十进制还是0xF7二进制是未知的。
我没有在我面前的TAOCP检查,但我相信这个逻辑是一个很好的解释的?,这是困惑你。
https://stackoverflow.com/questions/10065775
复制相似问题