【问题标题】:Should this be an overflow condition?这应该是溢出条件吗?
【发布时间】:2012-11-27 05:50:43
【问题描述】:

我正在尝试编写一个 MOS 6502 8 位仿真器以更好地了解 CPU。

感谢this question 的大力帮助,我已经实现了我的 ADC(带进位加法)指令。我的输出与问题答案的示例输出完全相同。

问题是,我现在不确定该答案是否存在错误,因为我认为 255 + 1 会导致进位和溢出(因为 255 + 1 = 256,而不是 0)。使用上面回答的问题中采用的方法,我只得到一个进位,而不是溢出。

哪个是正确的?

【问题讨论】:

    标签: math assembly binary emulation cpu


    【解决方案1】:

    没有。根据链接的答案,当您对数字的符号解释溢出时,会设置溢出标志。 (无符号)255 = 0xff = (有符号)-1。并且 -1 + 1 = 0 没有溢出。

    【讨论】:

    • 这令人沮丧。我正在使用这个在线 6502 模拟器 (e-tradition.net/bytes/6502) 测试我的代码,据此 - 将 $FF 添加到 $01 应该会导致进位和溢出。不知道现在该相信什么!
    • @Garry 你应该可以在网上找到 Rodnay Zaks 的“Programming the 6502”版本。在我的第 23 页的副本(第三版,1980 年)中,它说“......溢出标志是通过异或第 7 位(符号位)的进位和进位来设置的。”如果这样更清楚的话。
    • @Garry 我相信模拟器坏了。看看它的代码function opADC 它设置fCARfOVF 在相同的情况下。
    • 谢谢安德鲁/zch。我也有那本书。我想我只是假设我用来测试的在线模拟器可能存在缺陷,因为所有事情都表明我的初始实现是正确的。
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多