Thumb指令集之: Thumb跳转指令

嵌入式系统 时间:2013-09-30来源:网络

11.3.5带返回链接的无条件跳转指令BLX(2)

(1)编码格式

带返回链接的无条件跳转指令BLX(2)的编码格式如图11.6所示。

图11.6BLX(2)指令的编码格式

该BLX(2)指令用于ARM和Thumb子程序间的相互调用。程序状态字的T标志位根据目的寄存器的bit[0]位而改变。

(2)指令的语法格式

BLXRm>

其中Rm>为目标地址寄存器,r0~r14寄存器均可以做为目标地址寄存器。

注意

如果在此指令中使用r15作为目的寄存器,指令的执行结果不可预知。

此指令只在ARMv5版本以上指令集中被支持。

(3)指令操作的伪代码

LR=(addressoftheinstructionafterthisBLX)|1

TFlag=Rm[0]

PC=Rm[31:1]1

11.3.6Thumb指令集中跳转指令举例

下面的例子程序综合使用了各种跳转指令,通过该例可以对Thumb状态下程序的非连续执行有更深入的了解。

Blabel ;无条件跳转到Label地址

BCClabel ;如果进位标志为0,则跳转

BEQlabel ;如果零标准位置1,则跳转

BLfunc ;子程序调用

Func

… ;子程序体

MOVPC,LR ;子程序返回

BXr12 ;跳转到r12寄存器中保存的地址

在执行此例中的BXr12时,如果r12的bit[0]=0,则处理器进入ARM状态执行,否则继续执行Thumb代码。

1 2 3 4

关键词: Thumb指令集 跳转指令 ARM 状态切换

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版