乱数 (0 から 31 まで) x が address$00
に保存され、別の乱数 (0 から 31 まで) y が address に保存されています$01
。この 2 つの数値を座標として使用して、住所を導き出します$xy
。たとえば、x = 2、y = 10 の場合、アドレスは になります$020a
。私は初心者なので、誰かがこれを行う効果的な方法を共有できますか?
派生アドレスに他の値を格納したい$020a
ので、これが必要です。
LDY #$00
LDA #VALUE
STA ($00),Y
これにより、質問で説明されているように、$00 と $01 に含まれるアドレスからアキュムレータにデータがロードされます。
アドレス $00 に 10 または $0a があり、アドレス $01 に 2 または $2 がある場合、値がアドレス $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
私はさびていますが、これがあなたを適切な方向に導くことを願っています.