ARM 指令集>>跳转指令

发布者:快乐舞动最新更新时间:2020-02-12 来源: eefocus关键字:ARM  指令集  跳转指令 手机看文章 扫描二维码
随时随地手机看文章

一、跳转指令

跳转指令用于实现程序流程的跳转,在ARM 程序中有两种方法可以实现程序流程的跳转:

Ⅰ.使用专门的跳转指令。

Ⅱ.直接向程序计数器PC 写入跳转地址值。


通过向程序计数器PC 写入跳转地址值,可以实现在4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC 等类似指令,可以保存将来的返回地址值,从而实现在4GB 连续的线性地址空间的子程序调用。


ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4 条指令:

 

1、 B 指令

B 指令的格式为:

B{条件} 目标地址

B 指令是最简单的跳转指令。一旦遇到一个 B 指令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行。注意存储在跳转指令中的实际值是相对当前PC 值的一个偏移量,而不是一个绝对地址,它的值由汇编器来计算(参考寻址方式中的相对寻址)。它是 24 位有符号数,左移两位后有符号扩展为 32 位,表示的有效偏移为 26 位(前后32MB 的地址空间)。以下指令:

B Label ;程序无条件跳转到标号Label 处执行

CMP R1,#0 ;当CPSR 寄存器中的Z 条件码置位时,程序跳转到标号Label 处执行

BEQ Label

 

2、 BL 指令

BL 指令的格式为:

BL{条件} 目标地址

BL 是另一个跳转指令,但跳转之前,会在寄存器R14 中保存PC 的当前内容,因此,可以通过将R14 的内容重新加载到PC 中,来返回到跳转指令之后的那个指令处执行。该指令是实现子程序调用的一个基本但常用的手段。以下指令:

BL Label ;当程序无条件跳转到标号Label 处执行时,同时将当前的PC 值保存到R14 中

 

3、 BLX 指令

BLX 指令的格式为:

BLX 目标地址

BLX 指令从ARM 指令集跳转到指令中所指定的目标地址,并将处理器的工作状态有ARM 状态切换到Thumb 状态,该指令同时将PC 的当前内容保存到寄存器R14 中。因此,当子程序使用Thumb 指令集,而调用者使用ARM 指令集时,可以通过BLX 指令实现子程序的调用和处理器工作状态的切换。同时,子程序的返回可以通过将寄存器R14 值复制到PC 中来完成。

 

4、 BX 指令

BX 指令的格式为:

BX{条件} 目标地址

BX 指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM 指令,也可以是Thumb 指令。

关键字:ARM  指令集  跳转指令 引用地址:ARM 指令集>>跳转指令

上一篇:嵌入式Linux之我行——ARM MMU工作原理剖析
下一篇:ARM汇编--寻址方式

推荐阅读最新更新时间:2024-11-03 10:29

arm9(s3c2440)jlink烧写uboot
笔者开发环境:操作系统 win7,开发板GT2440,电脑没有串口,用的u转串口(本文简要摘录,并整理相关资源) 1.连接pc和jlink和开发板 2.安装jlink驱动,配置jlink 3.开发板打到nor flash启动方式,启动开发板 ARM学习笔记之Jlink烧写Uboot: 下载jlink驱动JLINK-V7安装包。解压后找到驱动安装。双击默认安装 安装完后在桌面会出现两个图标 安装完成可以桌面出现两个快捷图标,J-Link ARM 可以用来进行设置和测试,下面我们看一下J-LINK 的测试数据双击J-link ARM在没有连接开发板时出现如下的界面: 如果连接开发板后出现界面如下:说明jlink连上板子
[单片机]
<font color='red'>arm</font>9(s3c2440)jlink烧写uboot
贸泽电子开售适用于工业和可穿戴设备的 ADI MAX32690 Arm Cortex-M4F BLE 5.2微控制器
贸泽电子开售适用于工业和可穿戴设备的 Analog Devices MAX32690 Arm Cortex-M4F BLE 5.2微控制器 2024年5月6日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Analog Devices, Inc. (ADI) 的MAX32690微控制器 (MCU)。MAX32690是一款先进的片上系统 (SoC),将所有必要的处理能力与各种消费类和工业物联网 (IoT) 应用所需的易连接性和蓝牙功能结合在一起,是适用于电池供电应用的理想型超高效MCU。 贸泽电子供应的ADI MAX32690 MCU搭载1
[手机便携]
贸泽电子开售适用于工业和可穿戴设备的  ADI MAX32690 <font color='red'>Arm</font> Cortex-M4F BLE 5.2微控制器
PIC单片机简介
PIC单片机简介: PIC单片机(Peripheral Interface Controller)是一种用来可开发的去控制外围设备的可编程集成电路(IC)。由美国Microchip(微星)公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、
[单片机]
PIC单片机简介
ARM的体系结构与编程系列博客——ARM的历史与应用范围
前言 最近我感觉自己比较浮躁,重来没有好好地沉下心来做一件事情,而且针对自己在专业水平上仍然还有很多欠缺,于是我想我应该为自己做些什么来证明一下自己真的是潜心研究东西的人,于是我萌生了一个想法,真正地写一系列的博客,将ARM的结构体系完完全全地梳理一遍!虽然是学过了,但是学得应该仅仅是皮毛吧!正好趁着自己还有时间,为什么不做一个自己想认真做的事情呢? 回到顶部 系列博客的介绍 博客园里面的大神们都很多,有许多人对Linux、ARM等都有相应的了解,因而,如果你是老鸟的话,就当飘过啦,如果你是新手的话,哈哈,那么现在正是为你而准备的大餐了! 准备的博客如下: ARM概述 ARM指令系统分类及其寻址方式 掌握ARM指令集
[单片机]
arm-linux-gcc 常用参数讲解 gcc编译器使用方法
我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。 在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段: 1. 预处理(Pre-Processing) 2. 编译(Compiling) 3. 汇编(Assembling) 4. 链接(Linking) Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为 今后的调试做好准备。和其它常用的编译器一样,GCC也提供了
[单片机]
爱特梅尔扩展ARM926-based 微控制器系列
爱特梅尔新增五款全新易用的SAM9器件成员,支持DDR2存储器,具有包括软调制解调器实现,以及增强的 LCD控制功能在内的多种连接特性 微控制器及触摸解决方案领导厂商爱特梅尔公司 (Atmel® Corporation) 宣布其Atmel SAM9 ARM926™-based系列微控制器 (MCU) 新增五款全新器件。全新SAM9器件的目标应用针对工业和楼宇控制、HVAC、销售终端 (Point of Sale, POS)、打印机和医疗设备、带有数据汇集器的智能电网、人机接口 (human machine interfaces, HMI) 以及机器对机器 (M2M) 等市场领域。 新的SAM9G15、SAM9G25、SA
[单片机]
爱特梅尔扩展<font color='red'>ARM</font>926-based 微控制器系列
基于ARM和FPGA的声纳波形产生系统设计
1、引言   最佳声纳系统的设计需要从声纳波形、声纳信道和声纳接收机三方面进行综合考虑 。在声纳信道一定的假设下,需要设计最佳声纳波形和最佳接收机,使声纳系统能在给定的声纳环境中对目标有最佳的检测效果。工作在浅水中的主动声纳,其性能主要受限于混响级。根据波形选择与信道匹配的原则,针对混响信道,所选的声纳波形应使其模糊度函数尽量与混响信道散射函数不重合,而与声传输信号散射函数尽量重合 。基于这样的原则,常用的声纳信号单频信号(CW)、线性调频信号(LFM)抑制混响的能力比较如下:在检测静止或低速目标时,LFM和短CW较长CW有更好的混响抑制能力,但短CW波只适合近距离目标;在检测高速运动目标时,长CW脉冲是最合适的信号形式 。由此
[单片机]
基于<font color='red'>ARM</font>和FPGA的声纳波形产生系统设计
基于ARM微控制器LPC2138的分布式系统设计
  引言   分布式控制系统(Distributed Control System,DCS)是应用计算机技术对生产过程进行集中监测、管理和分散控制的综合性网络系统。目前,采用微控制器作为分布控制核心,通过RS485网络构建的分布式控制系统在工业、农业、医疗等领域获得了广泛的应用,例如,分布式温室环境信息监测系统,分布式水下电脑灯控制系统等等。   LPC2138是飞利浦公司推出的基于ARM7TDMI-S 内核的微控制器,它具有非常丰富的外围模块,强大的处理和控制功能,非常易于构建嵌入式系统。用它构建的分布式控制系统,不仅体积小,性价比高,而且还具有稳定可靠、功能强大、开发周期短等特点。   图1 系统总体设计框图  
[单片机]
基于<font color='red'>ARM</font>微控制器LPC2138的分布式系统设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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