zoukankan      html  css  js  c++  java
  • ARM分支指令

    ARM处理器使用的分支指令有B、BL、BX、BLX,各指令区别如下:

    1、B:Branch,无条件跳转。

    通过将PC的值设置为<address>来指示下条指令的地址,这是一种永久性分支,不会再返回。

    该指令主要用于循环中,或者将程序的控制权交给另一部分代码。

    ……

    B fwd

    MOV r0, r0 ;这条指令将不会得到执行

    fwd:

    2、BL:Branch with Link,带链接的跳转。

    将PC的值设置为下条指令的地址,并将BL指令后的地址存放到LR中,从而在子程序执行完成之后返回到原来的位置。

    ……

    BL calc

    ……

    calc: ADD r0, r1, r2

    BX lr ;返回到先前的位置

    3、BX:Branch with eXchange,跳转并交换。

    允许程序在ARM状态和Thumb状态之间切换

    4、BLX:Branch with Link and eXchange,带链接和交换的跳转。

    该指令可以进行ARM/Thumb状态切换,并更新LR寄存器,允许返回到先前的位置。

  • 相关阅读:
    多线程之异步操作
    AppDomain
    多线程之线程同步
    webServices与Web服务
    webParts与Web部件
    xhtmlConformance与xhtml脚本呈现
    webControls与客户端脚本路径
    urlMappings与URL映射
    trace与代码跟踪服务
    siteMap与站点导航
  • 原文地址:https://www.cnblogs.com/caidi/p/14446252.html
Copyright © 2011-2022 走看看