gpt4 book ai didi

assembly - 将#$FF 加载到 A,并存储在地址 $0000 不起作用

转载 作者:行者123 更新时间:2023-12-01 10:19:36 25 4
gpt4 key购买 nike

我正在学习 NES 的汇编,我写了这个程序:

    .org $8000 ; set code to start of rom
Start: ; make a label called start
lda #$ff ; set acc to 0xff
sta $0000 ; store address 0x0000 to acc which is 0xff
jmp Start ; jump to label start

我用 NESASM3 编译程序,它编译成功,然后在我的模拟器中运行它,当我转到模拟器中的内存查看器时,查看地址 $0000,它是 01,而不是 FF,就像我编程的那样.

最佳答案

您的代码缺少一堆信息,这些信息对于模拟器了解这是什么类型的 ROM 以及 NES 了解它应该从哪里开始执行所必需的。

一个工作示例可能如下所示(在 FCEU 中测试):

   ; ROM header
.inesprg 2 ; Two 16k PRG-ROM banks
.ineschr 1 ; One 8k CHR-ROM bank
.inesmir 1 ; Vertical mirroring
.inesmap 0 ; Mapper 0 (none)

.bank 0
.org $8000 ; set code to start of rom
Start: ; make a label called start
lda #$ff ; set acc to 0xff
sta $0000 ; store address 0x0000 to acc which is 0xff
jmp Start ; jump to label start

; Dummy interrupt handlers
nmi:
irq:
rti

; Specify reset and interrupt vectors

.bank 3 ; The .bank directive uses 8kB granularity, so bank 3
; is final 8kB chunk of our 32kB PRG-ROM.
.org $fffa
.dw nmi
.dw Start
.dw irq

关于assembly - 将#$FF 加载到 A,并存储在地址 $0000 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54879126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com