2

我目前正在尝试通过 .NET 编写 NES 模拟器,并且我对执行递减和递增的特定操作码有疑问......

由于 X 和 Y 寄存器都是 8 位,在实现方面,它是无符号字节还是有符号字节?即X和Y寄存器的取值范围是-128到127还是0-255?

我对此感到困惑,因为如果 X 和 Y 寄存器初始化为 0,那么执行 DEX 时会发生什么?还是由程序员来真正担心这一点?

提前感谢大家的帮助。

4

1 回答 1

4

有趣的是,使用二进制补码有符号数在执行算术时没有区别,因此 DEX 不知道寄存器是否包含有符号数或无符号数。例如,表示 -1 的位与表示 255 的位相同。因此 0 - 1 = 255 或 -1 取决于您的解释。减量无关紧要。

于 2012-08-17T03:20:13.727 回答