自一月份以来,我一直在为 Xbox 开发一个虚构的复古虚拟机(我根本不是在复制0x10c,事实上我的项目更旧。 只是把它放在那里,以防一些缺口粉丝读到这个),它有 6 个通用寄存器。这些是8位,但都可以组合成3个16位寄存器,存储器地址虽然是16位,程序计数器也是如此。我知道这是一个愚蠢的问题,但我无法弄清楚,是 16 位还是 8 位????z80 使用 16 位地址,为 8 位
据我所知和了解到,处理器的通用寄存器的位宽决定了它,因为所有的计算都依赖于时钟速度,它只能处理通用寄存器的量。
例如,在 32 位处理器中,它可以通过寄存器串联执行 64 位计算,但不能将其调用为 64 位处理器。当然,在 32 位处理器中有一些 64 位扩展指令,但它们消耗双时钟,两步。
我认为您的处理器设计师只是想扩展内存地址空间以支持更大的内存。
所以,我的结论是8位处理器。
您的处理器可以一次性处理 16 位数据,还是在后台使用两个单独的 8 位操作?如果是前者,它是 16 位。如果是后者,则为 8 位。
从您的描述来看,它听起来像 16 位,因为它使用 16 位进行数据寻址。
构成 16 位处理器的最常见定义是处理器可以使用本机指令处理的最长整数类型的大小。如果您的虚拟机具有在 16 位寄存器上运行并提供 16 位输入的算术指令,则它有资格成为 16 位计算机。
另一个常见的定义是地址空间的大小。由于虚拟机具有 16 位地址,因此它也符合 16 位的条件。