BVC 命令 (Branch if Overflow Flag is Cleared)
オーバーフローフラグがクリアされている場合に、指定された場所へアセンブリの実行位置を変更します。
BVCオーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 50 | BVC near | PC Rel. | 2 | 2 | 1, 2 |
注
- 実際に分岐が発生した場合、1サイクル追加
- エミュレーションモードで、分岐先がページ境界をまたぐ場合は1サイクル追加
フラグ変化
--------
この命令はステータスフラグを変更しない。
解説
BVC命令はオーバーフローフラグがクリアされている場合に、現在のプログラムカウンタを基準に、オペランドに指定された符号付き8ビットオフセットの示すアドレスへプログラムの実行位置を変えます。
通常は、ADC命令などのオーバーフローの発生する可能性のある処理で発生した例外の捕捉に使用されます。
使用例
符号付きの演算結果が正しいか調べる
CLC
LDA $10
ADC $12
BVC .ok ; 符号付きとして桁あふれしていなければ分岐する
; ここに来るのは、符号付きとして結果が表せなかったとき
符号付きの値の大小比較にもオーバーフローフラグを使います(レシピ: 符号付きの値の扱い)。