一、Arm指令条件码和条件助记符

二、跳转指令B

  1、作用

    跳转指令B使程序跳转到指定的地址执行程序(跳转范围是PC-32MB到PC+32MB)

  2、指令格式(注:B后面如果有条件,条件就是紧跟在B后面,没有空格)

    B{<condition>} <target_address>

  3、参数说明

    3.1、<condition>:它指示指令在什么条件下执行,可省略

    3.2、<target_address>:指令跳转的目标地址,指令通过下面的方法计算目标地址:

      A、将24位带符号的补码立即数符号扩展到32位

      B、将扩展后的32位立即数左移两位

      C、将得到的值加到PC寄存器中,即得到跳转的目标地址

三、带连接的跳转指令BL

  1、作用

     带连接的跳转指令BL将下一条指令的地址拷贝到r14(即返回地址连接寄存器LR)寄存器中,然后跳转到指定地址运行程序。

  2、语法格式

     BL{<condition>} <target_address>

  3、参数说明同B指令

 

四、带状态切换的跳转指令BX

  1、作用

    使程序跳转到指令中指定的参数Rm指定的地址执行程序

  2、语法格式

    BX{<condition>} <Rm>

  3、参数说明

    <Rm> 包含跳转指令的目标地址,

五、带状态切换的连接跳转指令BLX

  1、作用

    用于使程序跳转到Thumb状态或从Thumb状态返回,该指令为无条件执行指令,并用分支寄存器的最低位来更新CPSR中的T位,将返回地址写入到连接寄存器LR中。

  2、语法格式

     BLX{<condition>} <target_address>

  3、参数说明

    <target_address>为指令的跳转目标地址,该地址根据以下规则计算

    A、将指令指定的24位偏移量进行符号扩展,形成32位立即数

    B、将结果左移两位

    C、位H(bit[24])加到结果地址的第一位(bit[1])

    D、将结果累加到程序计数器PC中

ARM学习笔记2——分支跳转指令的更多相关文章

  1. ARM学习笔记6——程序状态寄存器访问指令

    这两条指令结合,可用于对CPSR或SPSR进行读/写操作. 当需要保存或修改当前模式下CPSR或SPSR的内容时,首先必须将这些内容传递到通用寄存器中 1.MRS指令(Move to Register ...

  2. ARM学习笔记4——加载存储指令

    一.字数据传送指令 作用:用于把单一的数据传入或者传出一个寄存器. 1.LDR指令 1.1.作用 根据<addr_mode>所确定的地址模式从内存中将一个32位的字段读取到目标寄存器< ...

  3. 微信小程序开发:学习笔记[8]——页面跳转及传参

    微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...

  4. java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象

     JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...

  5. 大数据学习笔记——Linux基本知识及指令(理论部分)

    Linux学习笔记整理 上一篇博客中,我们详细地整理了如何从0部署一套Linux操作系统,那么这一篇就承接上篇文章,我们仔细地把Linux的一些基础知识以及常用指令(包括一小部分高级命令)做一个梳理, ...

  6. 《Linux内核设计的艺术》学习笔记(三)Jcond指令

    参考书籍:<Assembly Language for x86 Processors (7th Edition)> ◆ JMPI指令: JMPI是x86实模式下的段间跳转指令: BOOTS ...

  7. [汇编学习笔记][第十三章int指令]

    第十三章int指令 13.1 int指令 格式: int n, n 为中断类型码 可以用int指令调用任何一个中断的中断处理程序(简称中断例程). 13.4 BIOS和DOS 所提供的中断例程 BIO ...

  8. ARM学习笔记8——通用寄存器和存储器内容交换指令和软中断指令

    交换指令将一个存储单元内容与制定的寄存器内容相交换,交换指令为进程间同步提供了一种方便的解决途径.该指令产生一堆原子Load/Store操作,该操作发生在一个连续的总线操作中,在操作期间阻止其他任何指 ...

  9. ARM学习笔记7——乘法指令

    ARM乘法指令完成两个数据的乘法,两个32位二进制数相乘的结果是64位的4积. 其中: 1.“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)链接形成的64位数,“[3 ...

随机推荐

  1. LevelDB windows vs2013 c++编译和测试

    引用: (src1) :http://download.csdn.net/detail/flyfish1986/8881263(这里有下载地址) (src2) :http://blog.csdn.ne ...

  2. Linux下的visudo命令

    新建了一个test账号,su 后使用visudo命令,发现不可用,退出putty,直接用root登录,可以用了,小白了,visudo只能用root执行,简单写下visudo命令吧 visudo后得到的 ...

  3. 一分钟搭建Webpack+react+es6框架

    最近react刷屏的厉害,而随着它一起走进我们视野的还有webpack,webpack只是个工具,为什么如此火呢?因为简单好了不废话.   直接进入正题: 打开命令行工具: npm install - ...

  4. php练习6——面向对象编程(打印乘法表)

    要求:编写一个成员函数,从键盘输入一个数(0—9),打印出对应的乘法表 程序:viewChengFB.html chengFB.class.php printChengFB.php   结果  

  5. PHP文章关键词相似短尾长尾内链替换方法介绍

    对于互联网程序来说,对文字正文内容做关键词内链优化是常态的工作之一.一方面有人手动来处理关键词内链,这个效率太低:一方面通过程序自动添加内链,这样子也省事而且便于管理: 今天我们探讨的就是给自动给文章 ...

  6. thinkphp多表查询

    在学习thinkphp 的过程中,需要对多表进行操作,但是在实际过程中,总是遇到各种问题,所以写下这篇博文,作为自己的学习历程 在操作过程中,两表查询都没有问题,但是三表查询就开始出现问题 有以下三张 ...

  7. 读取Android APK文件签名的方法

    在微信开放平台等申请API key 和secret时经常要用到apk文件签名,那么如何读取呢? 下面贴一下相关读取源码: 一共两个文件MainActivity和MD5, package com.lcg ...

  8. 针对IE的CSS hack 全面 实用

    .all IE{property:value\9;} .gte IE 8{property:value\0;} .lte IE 7{*property:value;} .IE 8/9{property ...

  9. jinja2 宏的简单使用总结(macro)

    Table of Contents 1. 简介 2. 用法 3. 参数和变量 4. 注意事项 4.1. macro的变量只能为如下三种: 4.2. 和block的关系: 5. 参考文档 1 简介 ji ...

  10. .net线程同步

    大家都晓得.NET中线程同步有以下几种方式: 临界区(Critical Section).互斥量(Mutex).信号量(Semaphore).事件(Event) 1.临界区:通过对多线程的串行化来访问 ...