ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編
【アセンブラ基礎知識編】
【アセンブラ入門編】
〖アドレッシングモード〗
*6502はレジスタの数は少ないですが、アドレッシングは比較的豊富です。
アドレッシングとは、オペコードの操作対象になるものです。
1.Implied :暗黙的省略
2.Accumulator :Aレジスタが対象
3.Immediate :8bit即値(IM8)
4.Zeropage :ゼロページが対象
5.Zeropage, X :ゼロページ+Xレジスタ
6.Zeropage, Y :ゼロページ+Yレジスタ
7.Relative :符号付8bit即値アドレスへ分岐
8.Absolute :16BITアドレスのメモリーが対象
9.Absolute, X :インデックス付き16ビット即値アドレス
10.Absolute, Y :インデックス付き16ビット即値アドレス
11・[Indirect] :16ビット即値アドレスにジャンプ
12.[Indirect, X] :8bitアドレス+Xレジスタにかかれた16BITアドレスの
8bitの値
13.[Indirect], Y :8bitアドレスにかかれた16ビットアドレス+yレジスタの
8bitの値。
〖アドレッシングモードの詳細前編〗
1⃣ implied
☆impliedとは、暗黙的という意味で オペコード内にオペランドも記述されていて
オペランドは省略されているものを言う。
TXA、PHA 等
2⃣ Accumulator
☆Aレジスタが操作対象
LSR A、ASL A 等
3⃣ Immediate
☆8BITの即値(数値)0~255
4⃣ Zeropage
☆ゼロページが対象、$0000~$00ff までをゼロページと言い特別な領域に
なっていて、高速で準レジスタの役割を果たす、その部分を <$00 のよに
区別して記述する。
5⃣ Zeropage、X
☆ゼロページにXレジスタのインデックス付き。
6⃣ Zeropage、Y
☆ゼロページにXレジスタのインデックス付き。
【アセンブラ実技編】
*Immediate
LDA #18
STA $6000
⁂10進数の18をAレジスタにロードして $6000 番地に ストアします
エミュレーターのHex Editorで 確認すると$6000に 16進数の $12が入ってました
$12 は10進数では 18です。 $6000~$7000は、バッテリーバックアップ
メモリーです。
【画像】
*Zeropage
LDX <$88
STX <$01
⁂Xレジスタに$88をロードし、ゼロページ<$01にストア。
*Zeropage,X
LDX #$20
LDA <$00、x
⁂Xレジスタに$20をロード、Aレジスタの値をゼロページ+$20にストアする。
*Zeropage,Y
LDY #$20
LDA <$00、y
⁂Yレジスタに$20をロード、Aレジスタの値をゼロページ+$20にストアする。