BVS 命令 (Branch if Overflow Flag is Set)
オーバーフローフラグがセットされている場合に、指定された場所へアセンブリの実行位置を変更します。
BVSオーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 70 | BVS near | PC Rel. | 2 | 2 | 1, 2 |
注
- 実際に分岐が発生した場合、1サイクル追加
- エミュレーションモードで、分岐先がページ境界をまたぐ場合は1サイクル追加
フラグ変化
--------
この命令はステータスフラグを変更しない。
解説
BVS命令はオーバーフローフラグがセットされている場合に、現在のプログラムカウンタを基準に、オペランドに指定された符号付き8ビットオフセットの示すアドレスへプログラムの実行位置を変えます。
通常は、ADC命令などのオーバーフローする可能性のある処理で発生した例外を捕捉するために使用されます。
使用例
BIT命令でビット6を調べる
BIT命令はメモリのビット6をオーバーフローフラグに読み込むので、ビット6のフラグを直接判定できます。
BIT $4212 ; HVBJOY: ビット6 = Hブランク中
BVS .hblank ; Hブランク中なら分岐する
桁あふれを検出する
CLC
LDA $10
ADC $12
BVS .overflow ; 符号付きとして桁あふれした