ドラクエ風RPGファミコンプログラム講座 アセンブラ入門編
【アセンブラ入門編】
〖基礎知識編〗
≪ステータスレジスタ≫
*ステイタスレジスタは、条件分岐命令の条件として保持されているもので
頻繫に使われるので、よく理解する必要があります。特にキャリーフラグ、
ゼロフラグは重要でこの2つが使いこなせればゲームを作る上では十分
でしょう。
N:ネガティブフラグ。Aの7ビット目と同じになります。負数の判定用。
V:オーバーフローフラグ。演算がオーバーフローを起こした場合セットされます。
R:予約済み。常にセットされています。
B:ブレイクフラグ。BRK割り込み発生時にセットされる。割り込みが
BRKかIRQかを識別するために使用する。
D:デシマルモードフラグ。(ファミコンでは未実装)B:ブレークモード。BRK発生時
セットされ、IRQ発生時はクリアされます。
I:インタラプトフラグ。IRQ禁止フラグ 0.許可 1.禁止
Z:ゼロフラグ。演算結果が0になった場合セットされます。ロード命令でも変化します。
C:キャリーフラグ。キャリー発生時セットされます。
〖トランスファー命令〗
⁂トランスファーは、レジスタ間のコピー命令で、AレジスタとX、Yレジスタ
間のコピー(転送)します、TXS、TSXは特殊でスタックの設定や呼び出し
に使われる命令です。
〖比較命令〗
[対象となるオペランド]
Immediate、Zeropage、Zeropage, X、Absolute、
Absolute, X、Absolute, Y、(Indirect, X)、(Indirect), Y
[対象となるオペランド]
Immediate、Zeropage、Absolute
[対象となるオペランド]
Immediate、Zeropage、Absolute
〖インクリメント・デクリメント命令〗
DEC:オペランドの値を-1する。
[対象となるオペランド]
Zeropage、Zeropage, X、Absolute、Absolute, X
DEX:Xレジスタを-1する。
[対象となるオペランド]
Implied
DEY:Yレジスタを-1する。
[対象となるオペランド]
Implied
INC:オペランドの値を+1する。
[対象となるオペランド]
Zeropage、Zeropage, X、Absolute、Absolute, X
INX:Xレジスタを+1する。
[対象となるオペランド]
Implied
INY:Yレジスタを+1する。
[対象となるオペランド]
Implied
〖条件分岐命令〗
BCC:比較演算の結果、キャリー無しの時分岐する。
BCS:比較演算の結果、キャリー有りの時分岐する。
BEQ:比較演算の結果、ゼロの時分岐する。
BNE:比較演算の結果、ゼロでない時分岐する。
BMI:比較演算の結果、マイナスの時分岐する。
BPL:比較演算の結果、プラスの時分岐する。
BVC:比較演算の結果、オーバーフロー無しの時分岐する。
BVS:比較演算の結果、オーバーフロー有りの時分岐する。
*次回は、カウンターを使ったループを作ってみます。