2

我有一个随机数(从 0 到 31)x 存储在 address $00,另一个随机数(从 0 到 31) y 存储在 address $01。我想用这两个数字作为坐标并推导出一个地址$xy。例如,如果 x = 2, y = 10,则地址为$020a. 我是初学者,有人可以分享一个有效的方法吗?

我想在派生地址中存储一些其他值$020a,所以这就是我需要它的原因。

4

2 回答 2

1
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中描述的间接索引寻址

于 2014-10-05T04:07:02.003 回答
1

您需要使用间接寻址。间接寻址需要一个地址加上 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

我生疏了,但希望这能引导你朝着正确的方向前进。

于 2014-10-05T04:07:41.007 回答