6502

    0熱度

    2回答

    對不起,如果這個問題似乎是'太基本'。我是一個68K ASM編碼器,但有一位朋友要求我瀏覽一下6502代碼。 我們有一個指向一串數據: my_ptr ds 2 此指針設置與此代碼: ldx sound_channel_busy bne .abc_set_score1 ; at bottom of code sta my_ptr ; fill the pointer 讀取數據與 lda

    2熱度

    2回答

    有人可以解釋LDA,ROL,STA給出結果的每條指令的確切結果嗎? C=1 (carry flag is 1) LDA A #$08 0008 | 01 ROL A 0009 | 02 STA A $10 000A | 03 // A result is $11 000B | 04 000C | 05 我想這: LDA A #$08 0008 - Stor

    6熱度

    1回答

    我正試圖學習如何使用下面的Codebase64 Tutorial中的內核例程來編寫磁盤文件。 我已經在下面用Acme Crossassembler編寫了我的例程。它無法打開文件,並給出錯誤信息:「文件未打開」 ; Definitions SETNAM = $FFBD SETFLS = $FFBA OPEN = $FFC0 CHKOUT = $FFC9 READST = $FFB7 CL

    0熱度

    1回答

    我寫完了我的6502模擬器,我準備開始測試它。我發現了帶有一些文檔的ROM,但我不確定,加載ROM的正確方式是什麼。作者說,模擬器應該從0xC000開始,當我加載ROM時,它包含0,所以我必須做錯了什麼。 所以現在我的加載過程看起來是這樣的: clear memory set PC to 0x8000 open the file skip first 16 bytes (iNES heade

    1熱度

    1回答

    我正在用C編寫我的第一個NES仿真器。目標是讓它易於理解並且循環準確(不一定必須是代碼效率),以便在正常的「硬件'的速度。在深入挖掘6502的技術參考資料時,看起來指令消耗的CPU週期不止一個 - 並且根據給定的條件(如分支)也有不同的週期。我的計劃是創建讀寫功能,並通過使用switch尋址模式對操作碼進行分組。 的問題是:當我有一個多週期指令,如BRK,我需要效仿在每個週期中究竟發生了什麼: #

    3熱度

    3回答

    我正在通過C64仿真器學習6502微程序集。目前試圖將字符串輸出到屏幕上。這是我的代碼: processor 6502 org $1000 ldx #$00 ;using x register as column counter print: lda message,x;load a with x bit from message sta $0400,x

    0熱度

    2回答

    在爲我的6502/NES仿真器創建指令函數時,我陷入了理解6502中的帶符號字節和2的補碼的概念。顯然,諸如BMI的分支指令在內存中使用帶符號字節來執行向前/向後分支,有些指令允許使用負數進行算術運算。負標誌也檢測累加器的第7位。 (二的補碼) 這是否意味着內存中的所有字節都有符號,我可以將內存初始化爲int8_t CPUMEMORY[0x10000];而不是uint8_t CPUMEMORY[0

    0熱度

    1回答

    寫我的6502/NES模擬器時,這真的讓我... 6502的存儲指令操作是這樣的: STA $2A78 - Store the value of the accumulator into memory address $2A78. 但是,該指令使用絕對尋址模式,它應該返回存儲在存儲器$2A78中的8位值。該AND指令,不遵循這個規律: (If $6A is stored in $2A78)

    1熱度

    2回答

    我一直在試圖理解一個老的6502處理器是如何工作的,特別是對於任天堂娛樂系統。有一件事繼續令我困惑,系統如何將相關數據從ROM移入RAM中,因爲所有彙編指令似乎都處理RAM-RAM命令。例如,如果遊戲需要在馬里奧加載敵人,那麼CPU如何識別要加載的相關區域,然後加載它們?一旦它在RAM中,我有一個很好的理解,但它將數據存入內存,我不明白。謝謝!

    3熱度

    2回答

    從我今天寫很多6502的理解來看,並行數組比存儲數據的結構要好。 想象一下,你想擁有,在C會這樣 struct Monster { unsigned char hitPoints; unsigned char damage; unsigned char shieldLevel; char* name; }; 定義什麼怪物統計的表格你可以把它保存爲結構