gpt4 book ai didi

emulation - 6502 CPU 仿真

转载 作者:行者123 更新时间:2023-12-03 06:35:09 27 4
gpt4 key购买 nike

现在是周末,所以我通过编写一个爱好项目来放松整周的编程。

昨天写了一个MOS 6502 CPU仿真器的框架,寄存器、堆栈、内存和所有操作码都实现了。 (来源链接如下)

我可以在我编写的调试器中手动运行一系列操作,但我想加载 NES ROM 并将程序计数器指向其指令,我认为这将是找到有缺陷的操作码的最快方法.

我编写了一个快速 NES ROM 加载程序,并将 ROM 组加载到 CPU 内存中。

问题是我不知道操作码是如何编码的。我知道操作码本身遵循每个操作码一个字节的模式,该模式唯一标识操作码,

0 - BRK
1 - ORA (D,X)
2 - COP b

等等

但是我不确定应该在哪里找到操作码参数。是紧随其后的字节吗?在绝对内存中,我想它可能不是一个字节而是一个短字节。

有人熟悉这个CPU的内存模型吗?

编辑:我意识到这可能是在黑暗中拍摄的,但我希望这里潜伏着一些老派的 Apple 和 Commodore 黑客。

编辑:感谢大家的帮助。在我实现适当的更改以调整每个操作后,CPU 可以加载并运行《马里奥兄弟》。除了循环等待 Start 之外,它不执行任何操作,但这是一个好兆头:)

我上传了源码:

https://archive.codeplex.com/?p=cpu6502

如果有人想知道模拟器是如何工作的,那么它很容易理解。至少没有优化,但话又说回来,我正在模拟在 2.4ghz 机器上以 2mhz 运行的 CPU :)

最佳答案

操作码占一个字节,操作数在后面的字节中。查看字节大小列here ,例如。

关于emulation - 6502 CPU 仿真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/111700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com