6502 是否在第一次上电时就将 FF 放入堆栈指针寄存器中?

mri*_*ing 12 cpu cpu-architecture

我正在从 6502.org 的许多链接中阅读有关 6502 处理器指令集的信息,其中一个教程指出:

堆栈指针(S)指向第1页的一个字节,即地址为0100到01FF的字节,其中最后两位由S提供。当一个字节入栈时,写入在 S 中的地址处,然后 S 递减。

S 寄存器是 1 个字节,因此它显然保存了从 00 到 FF 的值,但由于它在推送时递减,因此当尚未推送任何内容时,它必须从 FF 开始。当芯片第一次通电时,芯片中的物理硬件(晶体管)是否将该寄存器中的所有位都设置为“1”?

我只是想知道底层的细节。

pjc*_*c50 2

http://forum.6502.org/viewtopic.php?t=468&sid=ccdf15a560f1520a347ba896ae89767f声称未指定。

http://whats.all.this.brouhaha.com/2011/07/07/stack-usage-in-the-apple-1-monitor/还声称它没有指定,而且如果您不关心该页面中堆栈的确切位置。无论它从哪里开始,它都会回绕,所以只要您不使用超过 256 字节的堆栈就可以了。

http://visual6502.org/JSSim/这是实际硬件的晶体管级模拟,似乎在 SP 设置为 FD 的情况下启动;您可能可以追踪那里的实际寄存器并确定这是故意的还是只是巧合。

(在这种情况下,“监视器”是指低级控制程序而不是显示器)