algorithm - Donald Knuth 的 MIX 计算机
问题描述
在 MIX 计算机中,一个字由五个字节和一个符号组成。符号在记忆中是如何表示的?它是另一个字节,所以每个字真的是六个字节吗?
谢谢。
解决方案
你的问题不是很清楚。架构规范没有指定实际的实现。它只指定可观察的行为。
重要的是,在 MIX 中,对内存的访问与单词对齐。在 x86 等其他一些体系结构中,您可以从任意地址读取一个单词,即使是非字对齐的,但在 MIX 中却不是。这意味着除了作为相应单词的符号之外,您不能以任何其他方式访问“符号”。这反过来意味着,如果有人想在硬件中实现 MIX,每个字只使用 31 位就足够了,即 1 位用于符号 + 5 个 6 位的“字节”。
如果您想在使用 8 位乘以“字节”的标准现代硬件上模拟 MIX,您有以下几种选择:
- 对整个字使用 32 位值,并通过一些位掩码操作模拟其内部结构
- 使用 6 个 8 位字节:每个 MIX 6 位字节一个 8 位字节,另外一个用于符号。
显然,还有更多人为的选择。
推荐阅读
- gis - Netlogo GIS - 不支持的文件类型 - shapefile
- graphql - Fastify JWT 与 postgraphile 的使用
- c++ - 带有 C++ 错误的 OCCI:TNS:net 服务名称指定不正确
- python - 在 pyqtgraph 小部件上预设鼠标模式
- c# - 我们可以读取 appsettings 部分中某个键的值并修改转换 web.config 文件中的其他 appsettings 键值吗?
- c++ - 如何在windows上编译linux QT c++
- node.js - Docker/Puppeteer : pthread_create: 资源暂时不可用 (11)
- b-tree - 如何通过查看 B+ 树来获取插入顺序?
- mysql - Mysql,如何禁用特定数据库的连接
- ffmpeg - FFMpeg关于paket pts、dts和duration参数的问题