ドラクエ風RPGファミコンプログラム講座
【 アセンブラでの変数】
* アセンブラに於いて変数の扱いは、基本的にRAMの領域なら自由に使えますが、
プログラムの領域と分けて使うのが望ましいでしょう。
ファミコンでは、プログラムの領域はROMになっているので競合の心配は、
ありません。 ファミコンでは、変数用にゼロページが用意されていて、
高速且つ利便性にも優れています, RAM領域は $0000~$07ff まででスタック領域
以外は自由につかえます。
『 変数の宣言』
*ゼロページに変数を宣言するには、下記の様に書きます。
変数名 = $**
[例]
CT = $10
*上記は、CT という名の変数を ゼロページ $10 で使うことを宣言しています、
ファミコン(6502)では、レジスタが8bit なのでCTは8bitの変数に
なりますが、16bit 以上の変数を扱う場合は CT,CT+1,CT+2 の様にアクセス
します、この場合 CT が最下位 CT+2 が最上位になり $1034df という値だとすると
CT = $df, CT+1 = $34, CT+2 = $10 に格納することになります。
ファミコンの変数は、宣言のみで代入はできません、 ROM領域から格納します。
lda #100, sta <$10 のように代入します、ゼロページ以外の宣言方法は .org $0300
.dw 0, db $00 の様に変数領域を確保します、DWは、2バイト DBは、
1バイトです。