在编写 CPU 模拟器时,您如何选择模拟 16、32 或 64 位处理器?

When writing a CPU emulator, how do you choose between simulating a 16, 32, or 64 bit processor?

如果我要编写一个非常简单的 CPU 模拟器,您如何确定它有多少位,即 16 位或 32 位?

一般来说,处理器的特征在于其寄存器大小(机器字大小)。 16 位处理器通常有 16 位寄存器、16 位数据总线和 16 位地址总线(能够寻址 64 kB 内存)。它将使一个内存访问read/write一个寄存器。

但是,还有其他设置的示例。例如,Intel 8088 CPU 是一个 16 位处理器,具有 8 位数据总线和 20 位地址总线(能够寻址 1024 kB 内存)。它对read/write一个寄存器进行了两次内存访问,并将16位段寄存器和16位偏移寄存器组合成一个完整的20位地址。

现在这一切都取决于你想用你的CPU做什么。

  • 是为了自学吗?
    • 拿一个cpu架构简单
    • 取一个常用的 cpu(例如:大量文档,可以使用第三方二进制文件来测试您的模拟器等...)
  • 您想将 CPU 用于特定目的吗?

先定义好自己的need/goal,再选择适合自己的