ドラクエ風RPGファミコンプログラム講座

NES アセンブラ入門編】

アセンブラでの変数】

アセンブラに於いて変数の扱いは、基本的に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バイトです。

 

f:id:chien1956:20200220202414p:plain