Donald Knuth 的 MIX 计算机

Sign in MIX computer by Donald Knuth

在MIX计算机中,一个字由五个字节和一个符号组成。符号在内存中是如何表示的?是另一个字节所以每个字真的是六个字节吗?

谢谢。

你的问题不是很清楚。体系结构规范未指定实际实现。它仅指定可观察的行为。

重要的是,在 MIX 中,对内存的访问与字对齐。在 x86 等其他一些体系结构中,您可以从任意地址开始读取一个字,即使是非字对齐的,但在 MIX 中则不行。这意味着您不能以任何其他方式访问 "sign",只能作为相应单词的符号。这反过来意味着,如果有人想在硬件中实现 MIX,每个字只使用 31 位就足够了,即 1 位用于符号 + 5 "bytes" 6 位。

如果您想在使用 "bytes" 的标准现代硬件上模拟 MIX,即 8 位的乘积,您有几个选择:

  • 对整个字使用 32 位值,并通过一些位掩码操作模拟其内部结构
  • 使用 6 个 8 位字节:每个 MIX 6 位字节一个 8 位字节,另外一个用于符号。

显然,还有更多人为的选择。