1

我正在制作 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 称为内存地址而不是数字?

4

1 回答 1

5

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

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

不正确的是

ldx sprite1

sprite1被定义为$00,所以这最终会用地址的值加载$0000X。你想要的是ldx #sprite1.

于 2019-06-23T04:22:50.347 回答