资料介绍
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次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多