资料介绍
8.4 带状态切换的连接跳转指令BLX(2)
1.指令编码格式
带连接和状态切换的跳转指令BLX(Branch with Link Exchange)使用一个寄存器中的绝对地址,用于使程序跳转到Thumb状态或从Thumb状态返回。该指令用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。
指令编码格式如图8.4所示。

图8.4 BLX(2)指令编码格式
2.语法格式
BLX{《cond》} 《Rm》
① 《cond》
为指令编码中的条件域。它指示指令在什么条件下执行。当《cond》忽略时,指令为无条件执行(cond=AL(Alway))。
② 《Rm》
寄存器Rm指定转移目标,Rm的第0位拷贝到CPSR中的T位,bit[31∶0]移入PC。
· 如果Rm的bit[0]=1,则跳转时自动将CPSR中的标志位T置位,即把目标地址的代码解释为Thumb代码。
· 如果Rm的bit[0]=0,则跳转时自动将CPSR中的标志位T复位,即把目标地址代码解释为ARM代码。
3.指令操作的伪代码
指令操作的伪代码如下面程序段所示。
If ConditionPass{cond} then
LR = address of the instruction after the branch instruction
T Flag=Rm[0]
PC=Rm AND 0xfffffffe
注意在这种情况下,如果Rm的bit[1∶0]=0b10,指令的执行结果不可预知,因为这将导致在ARM状态下非对齐的字访问。
4.指令举例
调用Thumb子程序。
CODE32 ;ARM代码
……
BLX TSUB ;调用Thumb子程序
……
CODE16 ;Thumb代码开始
TSUB
……
BX r14 ;返回ARM状态
注意(1)一些不支持Thumb指令集的ARM处理器将捕获这些指令,允许软件仿真Thumb指令。
(2)只有实现ARMv5版本以上的处理器支持BLX指令的两种格式。
1.指令编码格式
带连接和状态切换的跳转指令BLX(Branch with Link Exchange)使用一个寄存器中的绝对地址,用于使程序跳转到Thumb状态或从Thumb状态返回。该指令用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。
指令编码格式如图8.4所示。

图8.4 BLX(2)指令编码格式
2.语法格式
BLX{《cond》} 《Rm》
① 《cond》
为指令编码中的条件域。它指示指令在什么条件下执行。当《cond》忽略时,指令为无条件执行(cond=AL(Alway))。
② 《Rm》
寄存器Rm指定转移目标,Rm的第0位拷贝到CPSR中的T位,bit[31∶0]移入PC。
· 如果Rm的bit[0]=1,则跳转时自动将CPSR中的标志位T置位,即把目标地址的代码解释为Thumb代码。
· 如果Rm的bit[0]=0,则跳转时自动将CPSR中的标志位T复位,即把目标地址代码解释为ARM代码。
3.指令操作的伪代码
指令操作的伪代码如下面程序段所示。
If ConditionPass{cond} then
LR = address of the instruction after the branch instruction
T Flag=Rm[0]
PC=Rm AND 0xfffffffe
注意在这种情况下,如果Rm的bit[1∶0]=0b10,指令的执行结果不可预知,因为这将导致在ARM状态下非对齐的字访问。
4.指令举例
调用Thumb子程序。
CODE32 ;ARM代码
……
BLX TSUB ;调用Thumb子程序
……
CODE16 ;Thumb代码开始
TSUB
……
BX r14 ;返回ARM状态
注意(1)一些不支持Thumb指令集的ARM处理器将捕获这些指令,允许软件仿真Thumb指令。
(2)只有实现ARMv5版本以上的处理器支持BLX指令的两种格式。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- T5L_TA指令集开发资料
- 跳转指令表的详细资料说明 2次下载
- 一种C波段带状线定向耦合器的研究设计与实际应用 15次下载
- 51单片机汇编教程之指令集的详细资料说明
- 使用单片机汇编跳转指令延时一秒的程序免费下载
- 基于PIC10F220/222下的6 引脚 8 位闪存单片机
- 基于PIC16F5X下的8 位 CMOS 闪存单片机
- 基于PIC12F508/509/16F505下的8/14 引脚 8 位闪存单片机
- 跳转指令B及带连接的跳转指令BLX上 2次下载
- Thumb指令集之Thumb跳转指令 1次下载
- 数据传送指令之程序状态寄存器指令简述 1次下载
- 三菱FX系列PLC条件跳转和子程序指令的应用_赫焕丽 3次下载
- ARM系列处理器应用技术完全手册(黑色经典系列
- arm指令集(1)
- IO口状态切换说明.pdf
- Vim跳转技巧 1550次阅读
- 状态机该怎么监控 439次阅读
- PLC基本工作状态 5282次阅读
- SIMATIC S7-1500程序控制指令简述 2634次阅读
- 状态机要实现哪些内容 748次阅读
- PLC指令的应用方面到什么程度 589次阅读
- 深度剖析ARM跳转指令 2922次阅读
- continue和break跳转语句介绍 1691次阅读
- PLC跳转/标号指令的工作原理及应用举例 5957次阅读
- BL(B)和LDR跳转范围是如何规定的 2443次阅读
- armv8/armv9的执行状态的跳转和切换 4319次阅读
- 鸿蒙内核源码的中断环境下的任务切换 2329次阅读
- 鸿蒙内核源码之线程环境下的任务切换 1491次阅读
- 鸿蒙内核分析:线程中断环境下的任务切换 2621次阅读
- ARM嵌入式系统的中断服务例程跳转 2836次阅读
下载排行
本周
- 1DC电源插座图纸
- 0.67 MB | 2次下载 | 免费
- 2AN158 GD32VW553 Wi-Fi开发指南
- 1.51MB | 2次下载 | 免费
- 3AN148 GD32VW553射频硬件开发指南
- 2.07MB | 1次下载 | 免费
- 4AN111-LTC3219用户指南
- 84.32KB | 次下载 | 免费
- 5AN153-用于电源系统管理的Linduino
- 1.38MB | 次下载 | 免费
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下载 | 免费
- 7SM2018E 支持可控硅调光线性恒流控制芯片
- 402.24 KB | 次下载 | 免费
- 8AN-1308: 电流检测放大器共模阶跃响应
- 545.42KB | 次下载 | 免费
本月
- 1ADI高性能电源管理解决方案
- 2.43 MB | 450次下载 | 免费
- 2免费开源CC3D飞控资料(电路图&PCB源文件、BOM、
- 5.67 MB | 138次下载 | 1 积分
- 3基于STM32单片机智能手环心率计步器体温显示设计
- 0.10 MB | 130次下载 | 免费
- 4使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 53314A函数发生器维修手册
- 16.30 MB | 31次下载 | 免费
- 6美的电磁炉维修手册大全
- 1.56 MB | 24次下载 | 5 积分
- 7如何正确测试电源的纹波
- 0.36 MB | 17次下载 | 免费
- 8感应笔电路图
- 0.06 MB | 10次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935121次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420062次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233088次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73810次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65988次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论