gpt4 book ai didi

emulation - 6502 模拟器测试 : nestest

转载 作者:行者123 更新时间:2023-12-01 08:46:37 28 4
gpt4 key购买 nike

我正在为 future 的 NES 模拟器实现我自己的 MOS 6502 cpu 模拟器。我正在使用 nestest 来测试模拟器的正确性。一切似乎都找到了,直到我到达这一行:

enter image description here

如您所见,状态寄存器是 (6F) 被压入堆栈。在下一条指令中,它从累加器的堆栈中拉出。在下一次提取中,日志显示 A: 7F。这有道理吗? A不应该是6F吗?

我正在使用这个日志:
http://www.qmtpro.com/~nes/misc/nestest.log

因为它来自 Nintendulator 它应该是可靠的,我猜。

是我弄错了还是这个日志不可靠?

最佳答案

原因更好解释 herehere , PHP始终设置 中断 将状态寄存器压入堆栈时的标志。但是,该标志的物理实现方式与我们将其可视化的方式之间存在代表性差异 - 它实际上根本不保存在状态寄存器中,而是显示为好像它是。

当 6502 执行 PHP指令,它设置写入堆栈的状态寄存器值中的第 4 位,但这并未反射(reflect)为对状态寄存器本身的实际更改。因此,您的日志显示状态寄存器在 PHP 之后没有变化。 ,但是当你PLA它具有的那个字节 位 4 集 .您可以通过在 PHP 之后使用显示器打破来亲眼看到这一点。指令,然后查看堆栈存储区 ($01xx) 中的字节。

关于emulation - 6502 模拟器测试 : nestest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017657/

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