您的位置 首页 知识

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

跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转:Ⅰ.使用专门的跳转指令。Ⅱ.直接向程序计数器PC写入跳转…

跳转指令用于完结程序流程的跳转,在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指令。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/276486.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部