ARM学习笔记2——分支跳转指令

发布者:转眼人老最新更新时间:2020-02-20 来源: eefocus关键字:ARM学习  分支跳转指令  地址 手机看文章 扫描二维码
随时随地手机看文章

一、Arm指令条件码和条件助记符

二、跳转指令B

  1、作用

    跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB)

  2、指令格式(注:B后面如果有条件,条件就是紧跟在B后面,没有空格)

    B{}

  3、参数说明

    3.1、:它指示指令在什么条件下执行,可省略

    3.2、:指令跳转的目标地址,指令通过下面的方法计算目标地址:

      A、将24位带符号的补码立即数符号扩展到32位

      B、将扩展后的32位立即数左移两位

      C、将得到的值加到PC寄存器中,即得到跳转的目标地址


三、带连接的跳转指令BL

  1、作用

     带连接的跳转指令BL将下一条指令的地址拷贝到r14(即返回地址连接寄存器LR)寄存器中,然后跳转到指定地址运行程序。

  2、语法格式

     BL{}  

  3、参数说明同B指令

 

四、带状态切换的跳转指令BX

  1、作用

    使程序跳转到指令中指定的参数Rm指定的地址执行程序

  2、语法格式

    BX{}

  3、参数说明

     包含跳转指令的目标地址,


五、带状态切换的连接跳转指令BLX

  1、作用

    用于使程序跳转到Thumb状态或从Thumb状态返回,该指令为无条件执行指令,并用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。

  2、语法格式

     BLX{

  3、参数说明

    为指令的跳转目标地址,该地址根据以下规则计算

    A、将指令指定的24位偏移量进行符号扩展,形成32位立即数

    B、将结果左移两位

    C、位H(bit[24])加到结果地址的第一位(bit[1])

    D、将结果累加到程序计数器PC中

关键字:ARM学习  分支跳转指令  地址 引用地址:ARM学习笔记2——分支跳转指令

上一篇:ARM学习笔记3——数据处理指令
下一篇:ARM学习笔记1——Arm寄存器与模式的关系

推荐阅读最新更新时间:2024-11-17 11:14

大量家庭摄像头遭入侵,有人兜售IP地址给偷窥者
一言不合被直播是种怎样的体验? 6月18日,央视新闻频道播放了一则新闻,央视记者在网上搜索栏输入“摄像头 破解”,跳出了众多相关聊天群,记者随机加入了几个,发现聊天的内容绝大多数有关家庭摄像隐私,时不时会放出一些号称他人家庭摄像头拍下的画面。很快,不少人主动添加记者为好友,询问是否需要扫描软件,并声称这些扫描软件能够攻破摄像头的IP地址。只要将被破解的IP地址输入播放软件,就可以实现偷窥,不被觉察。 为了探明真相,记者花了188元购买了两款软件和详细的使用教程。在播放软件中,输入卖家提供的ip地址、登录名和密码,竟然成功进入了一个摄像头。卖家还告诉记者,今天靠卖号已经赚了500多元。他有几十个徒弟,如果拜他为师,一个月收入上万并
[安防电子]
arm指令学习之记录关于队长的知识点总结
我就自己在学习arm指令中记录的关于队长方面的知识做一个简单的总结,希望对大家有所帮助。 1、寄存器 R13 在 arm 指令中常用作堆栈指针 2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器: R13_ 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 3、寄存器R13在arm指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每
[单片机]
ARM64体系结构编程与实践学习笔记(九) 高速缓存介绍
1. 高速缓存简介 由于处理器的访问速度和内存的访问速度差距越来越大,使得极端及整体系统的性能受到了巨大的影响。高速缓存,也就是Cache位于CPU和主存之间。相比于主存,它的容量要小的多,但是速度也快很多。它的存取速度能与中央处理器相匹配。 根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作
[单片机]
ARM处理器异常处理的返回地址分析
ARM 处理器一共有7 种类型的异常,按优先级从高到低排列如下: Reset Data Abort FIQ IRQ Prefetch Abort SWI Undefined instruction 当任何一个异常发生并得到响应时,ARM内核自动完成以下动作: 1、拷贝CPSR到SPSR_ mode 2、设置适当的CPSR位: 改变处理器状态进入ARM状态; 改变处理器模式进入相应的异常模式; 设置中断禁止位禁止相应中断。 3、更新LR_ mode 4、设置PC到相应的异常向量 当一个异常处理返回时,一共有3 件事情需要处理:通用寄存器的恢复、状态寄存器的恢复以及PC 指针的恢复。 通用寄存器的恢复采用一般的堆栈操作指令,
[单片机]
<font color='red'>ARM</font>处理器异常处理的返回<font color='red'>地址</font>分析
51单片机中断入口地址在c语言中的表示
函数类型 函数名(随便) 中断标识(不同的数字代表不同中断入口) 例如: void INT () interrupt 0 //外部中断0 {} void INT () interrupt 1 //定时/计数器0 {} void INT () interrupt 2 //外部中断1 {} void INT () interrupt 3 //定时/计数器1 {} void INT () interrupt 4 //串口 {} interrupt X 其中X表示中断号, 0表示外部中断0 1表示定时器0溢出中断 2表示外部中断1(/INT1) 3表示定时器1溢
[单片机]
如何为PROFINET IO控制器分配新的IP地址
组态注意事项:   下列描述仅仅适用于以下两个模板(CP443-1 Advanced):   6GK7443-1EX40-0XE0 6GK7443-1EX41-0XE0 在STEP7组态工具中,使用菜单“PLCàEdit Ethernet Node…”可以搜索到网络中的SIMATIC通讯处理器模板。这个搜索操作可以搜索到以太网通讯模板以及集成PROFINET接口的S7 CPU等网络组件。然后可以选择这些模板,通过“Assign IP Configuration”按钮,可以为说选择的模板分配新的IP组态,这包括:   IP地址 子网掩码 默认路由(使用路由器时需要) 使用该功能时须慎重,因为
[嵌入式]
ARM7学习笔记---ClimberWin
开始学习ARM,从ARM7学习起,从LPC2103开始学。通过LPC2103的练习板子和H-JTAG并口调试器来进行实际练习。 今天做了一个流水灯程序,编译环境是KEIL for ARM。 开始用ARM装了ADS调试软件,是专门调试ARM的编译环境,再加上H-JTAG软件,进行下载调试。但是今天使用了KEIL for ARM来进行编译,因为对KEIL环境还是比较熟悉,所以用KEIL来进行调试。制作了第一个演示程序,LED流水灯程序。 今天还学习了,ARM调试可以选择RAM空间进行调试还可以ROM调试。现在我用的是并口的H-JTAG,也可以用D-LINK等调试器。 下载了PLC2103的数据手册和使用手册,可以在 www.NXP
[单片机]
<font color='red'>ARM</font>7<font color='red'>学习</font>笔记---ClimberWin
ARM9 mini2451裸机学习——NAND flash驱动学习 2
上一篇文章主要学习了NAND Falsh的基础知识,今天则来总结NAND Flash的初始化,以及块擦除,页的读写操作,以及芯片id号的获取。 6. NAND FLASH 的操作接口 我们知道,函数在调用时需要使用栈,当项目的函数调用关系复杂时,尤其是存在多级 函数调用时,容易导致栈溢出,此处函数调用的开销也会逐渐加大。 为了更好的解决上述问题,一般使用宏的形式来实现规模较小的函数,因为宏调用时在 预处理阶段,由预处理器对源程序中的宏进行展开,所以宏展开不占用运行时间。 因为每一次宏调用都需要进行宏展开,所以会加大程序的代码量,因此规模较大的函数 不宜使用宏的形式来实现 ① NAND FLASH 使
[单片机]
<font color='red'>ARM</font>9 mini2451裸机<font color='red'>学习</font>——NAND flash驱动<font color='red'>学习</font> 2
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved