ARM汇编之跳转指令

ARM汇编语言之跳转指令

前言

ARM架构在当今主流的芯片中无论是MCU还是SOC都占有很大的市场,因此基于ARM架构的汇编语言对于嵌入式软件开发人员而言,其实也是一项必须掌握的基本功。

基础不牢,地动山摇”这句话无论放在哪个时代都永远不会过时,因此后续小T将抽空跟大家一起重新来学习下ARM汇编语言基础指令。

在我从事工作的过程中,当遇到很多C语言无法解释的时候,基于汇编语言的分析总是能够给到自己新的思路,屡试不爽,将会使你对计算机的理解更加深刻,同时解决问题的效率也会大大提升。

ARM汇编语言按照指令集分类可以分为如下六类:

  • 跳转指令;
  • 数据处理指令;
  • 程序状态寄存器(PSR)传输指令;
  • Load/Store 指令;
  • 协处理器指令;
  • 异常中断产生指令;

今天,我们先来一起学习下跳转指令,后续会按照这上述几大类给大家分别介绍。为了便于大家理解,以下是本文的主题大纲:

在这里插入图片描述


正文

在ARM架构中,存在如下两种方式来实现程序的跳转:

  • 直接的跳转指令;
  • 直接向PC赋值的长跳转指令;

其中,直接向PC中写入目标地址值,可以实现在4GB的地址空间中的任意跳转,这也是为什么被称为长跳转指令的原因。

除此以外,在ARM版本5及以上的体系中,已经支持ARM指令集与Thumb指令集的混合编程,通过指令使用的目标地址值的bit[0]来确定,当bit[0]值为1时,目标程序则为Thumb指令,当bit[0]为0时,目标程序为ARM指令。

ARM的跳转指令可以从当前指令向前或者向后32MB的地址空间跳转,下面将对这些指令进行一一介绍。

跳转指令

B指令(跳转指令)

B指令仅仅只用于跳转,相比BL指令,BL指令跳转的同时还会将PC寄存器的值保存至LR寄存器中。

如下图1所示介绍了B指令的格式要求以及相关示例。

在这里插入图片描述

图1 B指令的格式与示例

通过如下动图2可观察到寄存器PC以及R0的值的变化:

在这里插入图片描述

图2 B指令操作动图

BL指令(带返回的跳转指令)

如上图1所示,BL指令则是在B指令的基础上添加了L,那么执行该指令时就会将当前的PC的值保存至LR寄存器中。

在下图2中 所示,可以看到BL指令的使用例程:

在这里插入图片描述

图3 BL指令格式与示例

下图4所示为BL指令的应该过程中PC与LR寄存器之间的变化:运行BL指令时会将此时的PC中的值赋值给到LR寄存器。

在这里插入图片描述

图4 BL指令操作动图

BLX指令(带返回和状态切换的跳转指令)

如下图5所示为BLX指令的指令格式以及使用示例:
在这里插入图片描述

图5 BLX指令说明与示例

除此以外,BLX还存在如下图6所示的另一种指令格式,使用该指令则可以跳转至指定的目标地址,该目标地址的指令可以时ARM指令,也可以时Thumb指令。

在这里插入图片描述

图6 BLX指令2说明与示例

BX指令(带状态切换的跳转指令)

如下图7所示为BX指令的指令格式:

在这里插入图片描述

图7 BX指令说明与示例

该目标地址处的指令即可以是ARM指令,也可以是Thumb指令,目标地址值为指令的值与0xFFFFFFFE做与操作的结果,目标地址处的指令类型由Rm的bit[0]决定。

长跳转指令

直接通过向PC寄存器写入目标地址值便可以实现在4GB的地址空间范围内的任意长跳转。同时如果在执行长跳转指令之前使用“MOV LR,PC” 便可以实现在4GB空间范围内的子程序调用;

PC直接赋值

在这里插入图片描述
更多精彩内容,看公号"ADAS与ECU之吾见"!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车小T

感谢打赏,我会继续努力奉献精彩

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值