【问题标题】:how MIX subtractions works with "packed" wordsMIX 减法如何与“打包”单词一起使用
【发布时间】:2023-04-06 00:21:01
【问题描述】:

我正在阅读 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 = ?

这些是“打包”的词。也许我需要阅读更多关于他们的信息。或者谁能​​解释一下?

【问题讨论】:

    标签: assembly taocp


    【解决方案1】:

    我相信逻辑是这样的:

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

    或者,

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

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

    我现在没有 TAOCP 可以检查,但我相信这个逻辑很好地解释了让你困惑的 ?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2019-09-16
      相关资源
      最近更新 更多