我有一个随机数(从 0 到 31)x 存储在 address $00
,另一个随机数(从 0 到 31) y 存储在 address $01
。我想用这两个数字作为坐标并推导出一个地址$xy
。例如,如果 x = 2, y = 10,则地址为$020a
. 我是初学者,有人可以分享一个有效的方法吗?
我想在派生地址中存储一些其他值$020a
,所以这就是我需要它的原因。
LDY #$00
LDA #VALUE
STA ($00),Y
如您的问题所述,这会将数据从 $00 和 $01 中包含的地址加载到累加器中。
当地址 $00 有 10 或 $0a,而地址 $01 有 2 或 $2 时,这会将 VALUE 写入地址 $02a。
这使用http://www.dwheeler.com/6502/oneelkruns/asm1step.html中描述的间接索引寻址
您需要使用间接寻址。间接寻址需要一个地址加上 Y 寄存器,因此请确保先清除 Y 寄存器。
LDY #0
LDA ($0),Y
要存储在该地址:
LDA #$FF ; or whatever you want to store
LDY #0
STA ($0),Y
以下是有关间接寻址的更多信息:http ://www.obelisk.demon.co.uk/6502/addressing.html#IDY
我生疏了,但希望这能引导你朝着正确的方向前进。