定義
在ARM版本5以前的體系中,傳送到PC寄存器中的目标地址值的低兩位bits[1∶0]被忽略,跳轉指令隻能在ARM指令集中執行,即程序不能從ARM狀态切換到Thumb狀态。就在分支之前,在寄存器R14中裝載上R15的内容,因此可以重新裝載R14到R15中來返回到這個分支之後的那個指令處執行,它是子例程的一個基本但強力的實現。BX指令跳轉到指令中指定的目标地址,目标地址處的指令可以是ARM指令,也可以是Thumb指令。
詳解
跳轉指令
通過直接向PC寄存器中寫入目标地址值可以實現在4GB地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOVLR,PC等指令,則可以保存将來返回的地址值,這樣就實現了在4GB地址空間中的子程序調用。
在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目标地址值的bit來确定目标程序的類型。bit的值為1時,目标程序為Thumb指令;bit值為0時,目标程序為ARM指令。