资料介绍
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跳转技巧 921次阅读
- 状态机该怎么监控 310次阅读
- PLC基本工作状态 3983次阅读
- SIMATIC S7-1500程序控制指令简述 2217次阅读
- PLC指令的应用方面到什么程度 479次阅读
- 深度剖析ARM跳转指令 2546次阅读
- continue和break跳转语句介绍 1410次阅读
- PLC跳转/标号指令的工作原理及应用举例 5154次阅读
- BL(B)和LDR跳转范围是如何规定的 2112次阅读
- armv8/armv9的执行状态的跳转和切换 3874次阅读
- 鸿蒙内核源码的中断环境下的任务切换 2169次阅读
- 鸿蒙内核源码之线程环境下的任务切换 1371次阅读
- 鸿蒙内核分析:线程中断环境下的任务切换 2497次阅读
- 三菱PLC有哪些常用指令三菱PLC指令详细汇总 5.5w次阅读
- ARM嵌入式系统的中断服务例程跳转 2773次阅读
下载排行
本周
- 1HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 126次下载 | 1 积分
- 2H桥中的电流感测
- 545.39KB | 7次下载 | 免费
- 3雷达的基本分类方法
- 1.25 MB | 4次下载 | 4 积分
- 4I3C–下一代串行通信接口
- 608.47KB | 3次下载 | 免费
- 5电感技术讲解
- 827.73 KB | 2次下载 | 免费
- 6从 MSP430™ MCU 到 MSPM0 MCU 的迁移指南
- 1.17MB | 2次下载 | 免费
- 7有源低通滤波器设计应用说明
- 1.12MB | 2次下载 | 免费
- 8RA-Eco-RA2E1-48PIN-V1.0开发板资料
- 35.59 MB | 2次下载 | 免费
本月
- 12024年工控与通信行业上游发展趋势和热点解读
- 2.61 MB | 763次下载 | 免费
- 2HFSS电磁仿真设计应用详解PDF电子教程免费下载
- 24.30 MB | 126次下载 | 1 积分
- 3继电保护原理
- 2.80 MB | 36次下载 | 免费
- 4正激、反激、推挽、全桥、半桥区别和特点
- 0.91 MB | 32次下载 | 1 积分
- 5labview实现DBC在界面加载配置
- 0.57 MB | 21次下载 | 5 积分
- 6在设计中使用MOSFET瞬态热阻抗曲线
- 1.57MB | 15次下载 | 免费
- 7GBT 4706.1-2024家用和类似用途电器的安全第1部分:通用要求
- 7.43 MB | 13次下载 | 免费
- 8PADS-3D库文件
- 2.70 MB | 10次下载 | 2 积分
总榜
- 1matlab软件下载入口
- 未知 | 935113次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191360次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81578次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73804次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多