BX
带状态切换但不带返回的跳转指令,此指令只适用 ARMv5T*, ARMv6*, ARMv7。
Branch and Exchange causes a branch to an address and instruction set specified by a register.
分支指向寄存器指定的地址和指令集。
可以将指令集从ARM更改为Thumb,或从Thumb更改为ARM。
ARM指令是4字节对齐,最低两位可以用作状态指示,如果最低两位是0,表示切换到ARM状态。
BX<c> <Rm>
104dc: e24bd000 sub sp, fp, #0
104e0: e49db004 pop {fp} ; (ldr fp, [sp], #4)
104e4: e12fff1e bx lr
103cc: e59f3010 ldr r3, [pc, #16] ; 103e4 <deregister_tm_clones+0x2c>
103d0: e3530000 cmp r3, #0
103d4: 012fff1e bxeq lr
103d8: e12fff13 bx r3