fro*_*air 1 assembly constants 6502 nes
我正在制作 NES 游戏。我正在定义几个常量来帮助我管理精灵。我有
spriteyposition = $0200
spritetile = $0201
spriteattribute = $0202
spritexposition = $0203
sprite1 = $00
sprite2 = $04
sprite3 = $08
sprite4 = $0c
sprite5 = $10
sprite6 = $14
sprite7 = $18
sprite8 = $1c
Run Code Online (Sandbox Code Playgroud)
我的用例如下:
我想修改精灵1的y位置
我愿意:
ldx sprite1
lda spriteyposition, x
adc #$8
sta spriteyposition, x
Run Code Online (Sandbox Code Playgroud)
在我的用例中 spriteyposition 应该是一个内存指针,但我有一种感觉,汇编程序将其视为常规数字
我如何将 spriteyposition 称为内存地址而不是数字?
小智 5
在我的用例中
spriteyposition应该是一个内存指针,但我有一种感觉,汇编程序将它视为一个常规数字
你的感觉是不对的。此代码组装为预期的操作码 BD ( LDA ABS,x) - 没有IMM,x寻址模式。
不正确的是
ldx sprite1
Run Code Online (Sandbox Code Playgroud)
sprite1被定义为$00,所以这个端部向上与所述地址的值加载X $0000。你想要的是ldx #sprite1.