6502 如何处理变址寻址模式下的有效地址溢出?

Vad*_*dim 3 6502 emulation microprocessors

如果在变址寻址模式下执行加法的结果大于 ,会发生什么情况0xFFFF?需要明确的是,我指的不是从低字节到高字节的进位,而是指从高字节的进位。

例如,对于使用绝对 X 索引寻址的指令,0xFFAA当 x 索引寄存器包含 时,使用操作数调用它会产生什么结果0xFF?这会溢出到吗0x00AA?结果会0x100A9被截断为吗0x00A9?处理器会冻结吗?

由于某种原因,任何地方都没有这方面的信息。这一点在 MOS 的 650X 系列官方编程指南中似乎并未提及。

Eur*_*eka 5

处理器不会冻结。

它环绕着。正如@JeremyP 所指出的,它到底如何环绕取决于寻址模式。

普通16位寻址方式

0xFFFF绕完之后到0x0000.

0xFFAA+0x00FF将映射到0x00A9

显式零页寻址模式

如果您使用特殊的零页寻址模式,即只能保存 8 位地址,则它仅在零页0xFF回绕,从到0x00

0xAA+0xFF将映射到0xA9,即映射到 16 位地址0x00A9