2012-12-09 63 views
0

我想寫一個MOS 6502 8位模擬器,以更好地瞭解CPU。這應該是溢出條件嗎?

由於來自this question的大量幫助,我已經實現了我的ADC(帶進位)指令。我的輸出與問題答案的示例輸出完全相同。

問題是,我現在不確定是否有答案中的錯誤,因爲我認爲255 + 1會導致進位和溢出(因爲255 + 1 = 256,而不是0)。採用上述回答問題的方法,我只得到一個進位,而不是溢出。

這是正確的嗎?

回答

2

否。根據鏈接的答案,溢出標誌被設置,當你有溢出與數字簽名解釋。 (無符號)255 = 0xff =(有符號)-1。 -1 + 1 = 0沒有溢出。

+0

這令人沮喪。我正在用這個在線的6502仿真器(http://e-tradition.net/bytes/6502/)測試我的代碼,並根據這一點 - 將$ FF添加到$ 01應該導致進位和溢出。不知道現在該相信什麼! – Garry

+1

@Garry你應該可以在網上找到Rodnay Zaks的「Programming the 6502」的一個版本。在我的副本(第三版,1980年)第23頁上,它說:「...溢出標誌通過對位7(符號位)的進位和移出進行異或操作來設置。」如果這使得它更清晰。 –

+1

@Garry我相信模擬器壞了。看到它是'function opADC'的代碼,它在同一個案例中設置'fCAR'和'fOVF'。 – zch