CMP - Aと比較する CPX - Xと比較する CPY - Yと比較する例えばこのようにします。
cmp #$10 ; Aと10(16進数)を比較する cpx #16 ; Xと16(10進数)を比較する cpy $2002 ; Yと$2002の値を比較する比較命令を行うと、ステータスレジスタのN(ネガティブ),Z(ゼロ)C,(キャリー)フラグが結果により変化します。 比較した後に条件分岐命令でジャンプします。ちなみに、直前の演算結果が0になるとZフラグが立ちますから、 beq,bneと併用するときはcmp #0は省略することができます。活用しましょう。 (余談ですが、C言語ではループ用カウンタ変数を0から加算するよりも減算するほうが速いと言われてたのはこの理由によります。 最近のコンパイラでは大差ないかもしれませんが)
beq ifEqual ; 比較結果が等しいならばifEqualラベルにジャンプする。 bne ifNotEqual ; 比較結果が違ったらifNotEqualラベルにジャンプする。
nesasm giko008.asmを実行してください。パレット・スプライト・BGは前回と同じものを使用しています。 GIKO008.NESが出力されたら、エミュレータで起動してください。十字キーで第5章のスプライトを動かすことができるはずです。 メモリを見ることができるエミュならば、$0000のX座標と$0001のY座標が変化するのがわかるでしょう。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||