4.2.1. 分岐命令と切り替え命令

BX 命令は、Thumb をサポートするコアでのみ使用できます。この命令は、指定したレジスタに含まれているアドレスに分岐します。アドレス範囲は 4GB です。この分岐アドレスのビット 0 の値により、ARM 状態と Thumb 状態のどちらで実行を継続するかが決定されます。ARMv5 で使用できるその他の命令については、ARM アーキテクチャ v5T 以降とのインターワークを参照して下さい。

アドレスのビット 0 をこの方法で使用できるのは、以下の理由によります。

構文

BX の構文には以下のいずれかを使用します。

Thumb
BX Rn
ARM
BX{cond} Rn

各パラメータには以下の意味があります。

Rn

r0r15 の中で、分岐先のアドレスを保持するレジスタを指定します。このレジスタのビット 0 の値によって、プロセッサ状態が以下のように決定されます。

  • ビット 0 が設定されている場合は、分岐アドレスにある命令が Thumb 状態で実行されます。

  • ビット 0 がクリアされている場合は、分岐アドレスにある命令が ARM 状態で実行されます。

cond

任意の条件コードを指定します。条件実行できるのは ARM バージョンの BX のみです。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential