BRA 命令 (Branch Always)
常に、指定された場所へアセンブリの実行位置を変更します。
BRAオーバーロード
| オペコード | 構文 | アドレッシングモード | バイト数 | 命令サイクル | 注 |
|---|---|---|---|---|---|
| 80 | BRA near | PC Rel. | 2 | 3 | 1 |
注\
- エミュレーションモードで、分岐先がページ境界をまたぐ場合は1サイクル追加
フラグ変化
--------
この命令はステータスフラグを変更しない。
解説
BRA命令は、現在のプログラムカウンタを基準に、オペランドに指定された符号付き8ビットオフセットの示すアドレスへプログラムの実行位置を常に変えます。
BRA命令およびBRL命令は、制御フローを簡潔にしたり、コードの再配置を容易にするために用意されているものです。
また、BRAないしBRL命令によって無限ループを構成し、その内部で別の条件分岐を用いて大域脱出を行うようなコーディングも多用されます。
使用例
常に分岐する
LDA $10
BEQ .zero
LDA.b #$01
BRA .store ; 必ず分岐する
.zero
LDA.b #$80
.store
STA $12
JMP命令より1バイト短く、分岐先までの相対距離で指定するため、プログラムを別の場所に移しても書き換えずに動きます。届くのは前後およそ128バイトまでです。