ドラクエ風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の番地にジャンプする。