ARM汇编指令集之三——跳转指令

发布者:brian808090最新更新时间:2016-07-11 来源: 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汇编指令集之三——跳转指令

上一篇:ARM汇编指令集之四——数据处理指令
下一篇:ARM汇编伪指令:.word说明

推荐阅读最新更新时间:2024-03-16 14:59

请教ARM学习方法
我在农村长大,小时候没有人告诉过我大学是什么东西。小学的语文教师没有跟我用过普通话讲过课。我压根儿也没有想到自己会进入一间电类的中专学校学习“电子技术”,更没有想到自己以后会从事硬件开发这个工作。但这些现在都在进行着。 生活在农村,自幼没有思想进步的人给我指导人生方向。到了中专三年级(那时候中专是四年制)我开始明白自己的处境了(思想多落后啊!)。我开始设想我以后的人生,我开始认真学习了。那时我才发现自己的知识基础是多么的差啊! 虽然开始构想自己的未来,但也没有想出什么东西来。那时候唯一想到的就是读大学。于是我报了考自学考试。在报考自学考试前,我为选专业的事烦恼了好多天。那时候在想自己应不应该选择学电子这个东西,因为到那时
[单片机]
ARM系统代码固化的串口实现方法
  早期的嵌入式程序采用“编程—烧写—修改—烧写”的开发模式,大量的时间消耗在重复烧写芯片上,增加了开发成本和研发周期。之后发展到仿真器阶段,虽然简化了开发模式,但是由于仿真器与ARM芯片的兼容性等因素,经常会发生程序在仿真器上能正确运行,但是固化之后运行却出现问题的情况。   程序的固化是软件开发过程中重要的一环,一般可通过JATG口、网口及串口等进行烧写。相比之下,串口实现更为便捷,更值得推广。笔者在开发1C1T小灵通中继站的过程中,通过编制烧写程序,利用串口将编译后的目标代码发送给ARM处理器;由ARM处理器内部的监控程序将目标代码写入片外Flash,实现程序的在线烧写。这样不仅简化了电路设计,而且降低了开发成本,缩短了开
[单片机]
<font color='red'>ARM</font>系统代码固化的串口实现方法
关于ARM2440中断源个数的一点想法
S3c2440支持多达36个内部中断源和24个外部中断源,分别使用内部终端屏蔽寄存器INTMSK和外部中断寄存器MSK进行屏蔽控制。其中,外部中断源通过GPIO以复用的方式成为内部中断源的一部分。 但是我们清楚,INTMSK是一个32位的寄存器,最多只能支持32中断,它是如何对应这么多中断的呢? 首先我们先看INTMSK对应的位。 INTERRUPT MASK (INTMSK) REGISTER (Continued) INT_ADC 0 = Service available, 1 = Masked 1 INT_RTC 0 = Service available, 1 = Masked 1 INT_SPI1 0 = Se
[单片机]
Speed Pixel获益于ARM DesignStart 计划 得ARM7TDMI授权
香港本土fabless公司获益于ARM DesignStart 计划 中国上海,2007年8月13日 ——ARM公司(伦敦证交所:ARM;纳斯达克:ARMHY)今天宣布,位于香港的新兴fabless公司Speed Pixel Technology Ltd. 通过ARM代工厂计划获得ARM7TDMI处理器授权。Speed Pixel拥有强大的终端产品系统设计背景,通过这项协议,公司将能够开发先进的片上系统解决方案,用于中、短距离数字无线视频应用。Speed Pixel通过ARM DesignStart 计划开始其基于ARM技术的设计。在风险基金的支持下,Speed Pixel正加紧完成其产品设计,预计将于2007年第三季度上市。
[焦点新闻]
ARM920T MMU-CP15协处理器的寄存器
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和 存储器 之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令
[单片机]
ARM 浮点运算详解
一:早期ARM上的浮点模拟器: 早期的ARM没有协处理器,所以浮点运算是由CPU来模拟的,即所需浮点运算均在浮点运算模拟器(float math emulation)上进行,需要的浮点运算,常要耗费数千个循环才能执行完毕,因此特别缓慢。 直到今天,在ARM Kernel配置时,都有如下选项: Floating point emulation --- NWFPE math emulation FastFPE math emulation (EXPERIMENTAL) 在这里,可以配置ARM 浮点模拟器。 浮点模拟器 模拟浮点是利用了undefined instrction handler,在运算过程中遇到浮点计算是
[单片机]
ARM IAP升级方法
两个地方值得注意: (1) 中断向量的映射 (2) 用户程序Ro_base设置与要下载的地址一致, 也就是说对不同位址的FLASH下载相同的程序,必须首先要在KEIL下设置该程序对应的Ro_base地址,生成不同的hex或bin文件,进行下载,否则可能由于地址设置的不正确,导致下载后程序无法运行,这点尤为重要!!!!!!!!!!!!!(51,ARM都存在这个问题) 中断向量从0x0000000--0x00000001C共4*8=32个字节,还应包括后面到0x00000040之前的代码都应该映射,因为后面包括具体跳转的地址。(所以要映射从0x0000000----0x000003F共64个字节) 0x00000
[单片机]
基于数字水印和ARM的门票防伪检测系统简介
门票是观看奥运会、演唱会、参加高级会议的入场券。随着高质量图像输入输出设备的发展,特别是精度超过1 200 dpi的彩色喷墨、激光打印机和高精度彩色复印机的出现,门票的伪造变得更加容易。所以人们迫切需要一种有效的门票防伪及检测技术。传统的防伪技术,基本上都采用材料防伪,属于共性化防伪。如果被人仿冒,后果不堪设想,也存在造价高等缺点。而数字水印技术属于个性化防伪技术,它是与个性特征相结合,并且不改变成熟的印刷工艺,不改变印刷材料与设备,不增加印刷成本,是目前较好的防伪技术。 1防伪检测系统概述 防伪系统概述 水印是不被感知地在作品中嵌入信息的操作行为。数字水印是将具有特定意义的标记(水印),利用数字嵌入的方法隐藏在数字图像、声音、文
[单片机]
基于数字水印和<font color='red'>ARM</font>的门票防伪检测系统简介
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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