🎿

3.3.模拟CPU实现其余的 CPU 指令

notion imagenotion image
实现其余 6502 CPU 指令应该相对简单。我不会详细介绍所有这些。
只是一些注释:
  • 从逻辑流程的角度来看, ADC 可能是最复杂的指令。请注意,该规范包含有关可以完全跳过的十进制模式的详细信息,因为该芯片的 Ricoh 修改不支持十进制模式。
本文详细介绍了如何在 6502 中实现二进制算术:6502 溢出标志以数学方式解释
  • 实现 ADC 后,实现SBC变得微不足道,因为 A - B = A + (-B)B = !B + 1
  • PHPPLPRTI必须处理2 位 B-flag除了中断执行之外,这些是唯一直接影响(或直接受其影响)状态寄存器 P的第 5 位的命令
  • 大部分的跳转和跳转操作都可以通过简单的修改program_counter寄存器来实现。但是,请注意不要在同一指令解释周期内递增寄存器。
如果你卡住了,你可以随时在这里查看 6502 指令集的实现:

本章完整源代码:GitHub