BCS 命令 (Branch if Carry is Set/ Branch if Greater Than or Equal)

キャリーフラグがセットされている場合に、指定された場所へアセンブリの実行位置を変更します。
BGEはBCSのエイリアスです。

BCSオーバーロード

オペコード構文アドレッシングモードバイト数命令サイクル注
B0BCS near
BGE near
PC Rel.221, 2

注

  1. 実際に分岐が発生した場合、1サイクル追加
  2. エミュレーションモードで、分岐先がページ境界をまたぐ場合は1サイクル追加

フラグ変化

--------

この命令はステータスフラグを変更しない。

解説

BCS命令はキャリーフラグがセットされている場合に、現在のプログラムカウンタを基準に、オペランドに指定された符号付き8ビットオフセットの示すアドレスへプログラムの実行位置を変えます。
通常は、CMP命令などの比較演算を伴って実行されますが、用途によってはそのほかの命令を伴って使用されることがあります。

使用例

符号なしの大小で分岐する

CMP命令の後では、キャリーフラグは「Aが比較した値以上」のときにセットされます。

    LDA $10
    CMP.b #$20
    BCS .ge         ; $10 >= $20 (符号なし)のとき分岐する
    ; ここに来るのは $10 < $20 のとき

サブルーチンの結果を受け取る

キャリーフラグはサブルーチンの成否を返すのにもよく使われます(CLC命令を参照)。

    JSR CheckHit
    BCS .hit        ; キャリーがセットされて返ってきたら当たり

参照

BCC命令
BEQ命令
BMI命令
BNE命令
BPL命令
BRA命令
BRL命令
BVC命令
BVS命令