ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編

アセンブラ入門編】

〖基礎知識編〗

≪フラグと分岐命令≫

*条件分岐命令の条件としてのキャリーフラグ・ゼロフラグは重要でこの2つは

 使いこなせるようにしましょう。

 

〖ゼロフラグの使い方〗

☆ゼロフラグは、主にループ制御のカウンターが0になったかを知るのに

 使われる。

[例1]

 LDX #8

LOOP: 

 DEX

 BNE LOOP

*Xレジスタに繰り返す回数をセットして、DEX で(デクリメント)-1 し

 BNE で 0でなければ LOOPに JMP します。

 [例2]

  LDX #0

LOOP: 

 INX

 CPX #8

 BNE LOOP

*カウンターを0から始める場合は 比較命令を使用する。この例はXレジスタ

 インデックスとして使い、配列DATAをアクセスします、0~7のDATAを

 対象とします。

[例3]

COUNT = $00

 LDA #8

 STA   COUNT

LOOP:

 DEC COUNT

 BNE  LOOP

*カウンターに変数を使う例。COUNTはゼロページです、1行目はゼロページの

 宣言をしています。

〖キャリーフラグの使い方〗

☆キャリーフラグは、主に16ビット以上の演算の繰り上がり処理や

 DATAの大小による振り分けをするのに使われる。

[例4]

 LDA #60

 CMP <$40

 BCC LABEL

*Aレジスタと ゼロページ $40番地の値を比較しAレジスタより大きい時

 LABELの番地にジャンプする。