我正在制作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
我的用例如下:
我要修改图片1的y位置
我这样做:
ldx sprite1
lda spriteyposition, x
adc #$8
sta spriteyposition, x
在我的用例中,spriteyposition应该是一个内存指针,但是我有一种感觉,汇编器将其视为常规数
我如何将spriteyposition称为内存地址而不是数字?
答案 0 :(得分:4)
在我的用例中,
debugger
应该是一个内存指针,但是我有一种感觉,汇编器将其视为常规数
您的感觉不正确。此代码将组装到预期的操作码BD(spriteyposition
)上-没有LDA ABS,x
寻址模式。
不正确的是
IMM,x
ldx sprite1
被定义为sprite1
,因此最终以地址$00
的值加载X。您想要的是$0000
。