如何使用预定义的常量作为内存地址?

How to use a predefined constant as a memory address?

我正在制作 NES 游戏。我正在定义几个常量来帮助我管理精灵。我有

spriteyposition = 00
spritetile = 01
spriteattribute = 02
spritexposition = 03
sprite1 = [=10=]
sprite2 = 
sprite3 = 
sprite4 = [=10=]c
sprite5 = 
sprite6 = 
sprite7 = 
sprite8 = c

我的用例如下:

我要修改精灵1的y轴位置

我愿意:

ldx sprite1
lda spriteyposition, x
adc #
sta spriteyposition, x

在我的用例中,spriteyposition 应该是一个内存指针,但我有一种感觉,汇编程序将其视为一个常规数字

如何将 spriteyposition 称为内存地址而不是数字?

In my use case spriteyposition should be a memory pointer, but i have a feeling that the assembler is treating it as a regular number

你的感觉不对。此代码汇编为预期的操作码 BD (LDA ABS,x)——没有 IMM,x 寻址模式。

不正确的是

ldx sprite1

sprite1 被定义为 [=15=],所以这最终用地址 [=16=]00 的值加载 X。你要的是ldx #sprite1.