`
sony-soft
  • 浏览: 1036147 次
文章分类
社区版块
存档分类
最新评论

ARM中B指令和BL指令的区别

 
阅读更多
在ARM处理器里主要是通过3中情况在控制程序执行的:
1.流水方式执行程序,PC的值是下一条指令的地址,即每执行一条指令PC都加一个字的偏移。
2.通过跳转指令来控制程序执行。
B 跳转到指定的指令处执行。
BL 跳转执行,保存子程序地址并返回。
BX 跳转执行并切换到Thumb状态。
BLX 三种方式组合。
分享到:
评论

相关推荐

    常用ARM指令集及汇编.pdf

    Thumb 指令集与 ARM 指令集的区别 39 Thumb 存储器访问指令 40 LDR 和 STR 41 PUSH 和 POP 43 LDMIA 和 STMIA 43 Thumb 数据处理指令 45 数据传送指令46 MOV 46 MVN 46 NEG47 算术逻辑运算指令47 ...

    arm在thumb指令下ldr和bl实例

    1.arm在thumb指令下ldr和bl实例 2.ads工程

    ARM CORTEX-M0汇编指令汇总

    列出ARM CORTEX-M0可能的汇编指令组合,指令的长度,指令周期数和影响的状态字。

    SimIt-ARM-3.0 ARM指令模拟器

    SimIt-ARM-3.0 给予命令行ARM指令模拟器,短小精悍,是研究ARM处理器的好工具,该模拟器既可以运行用户级别的ELF程序,又可以模拟运行Linux操作系统;提供了简单易用的调试命令,可以逐条跟踪指令的执行。 SimIt-...

    ARM&Thumb; opcode

    arm和thumb指令的详细opcode,便于指令查询和熟悉指令。

    第8章 跳转指令《ARM系列处理器应用技术完全手册》

    跳转(B)和跳转连接(BL)指令是改变指令执行顺序的标准方式。ARM 一般按照字地址顺序执行指令,需要时使用条件执行跳过某段指令。只要程序必须偏离顺序执行,就要使用控制流指令来修改程序计数器。尽管在特定情况...

    arm79汇编伪指令介绍

    EXPORT symbol{[WEAK]} GLOBAL symbol{[WEAK]} [WEAK] 声明其它的同名...1.如果该符号被 B 或者 BL 指令引用,则该符号被设置成下一条指令的地址,该 B 或者 BL 指令相当于一条 NOP 指令。 2.其它情况下该符号被设置 0 。

    常用的ARM指令总结

    B指令和BL指令的主要区别在于B指令是无条件跳转,而BL指令是子程序调用指令。BX指令和BLX指令的主要区别在于BX指令可以跳转到Thumb指令集,而BLX指令可以跳转到Thumb指令集并实现状态的切换。 通过总结ARM指令的...

    ARM指令集 肯定可以下载

    ARM 指令集.................................................................................................................................7 指令格式......................................................

    跟涛哥一起学嵌入式 08:ARM跳转指令深度剖析1

    1. B 指令 2. BL 指令 4. LDR 伪指令 5. 小结

    arm指令集-中文 (ARM微控制器基础)

    ARM 指令集.................................................................................................................................7 指令格式......................................................

    ARM寄存器介绍

    在 ARM 处理器中,寄存器可以分为通用寄存器、状态寄存器和程序计数器 PC 三类。通用寄存器可以进一步分为未备份寄存器、备份寄存器和程序计数器 PC 三类。未备份寄存器包括 R0~R7,它们在所有的处理器模式下指的是...

    Uboot中start.S源码的指令级的详尽解析 v1.6

    4.9.4. 汇编中用bl指令和mov pc,lr来实现子函数调用和返回 90 4.9.5. 汇编中的对应位置有存储值的标号 = C语言中的指针变量 91 4.9.6. 汇编中的ldr+标号,来实现C中的函数调用 93 4.9.7. 汇编中设置某个寄存器的值...

    arm 汇编学习笔记

    B 和 BL 是 ARM 汇编语言中的两条跳转指令。它们的不同之处在于,BL 指令在转移到子程序执行之前,将其下一条指令的地址拷贝到 R14(LR,链接寄存器)。由于 BL 指令保存了下条指令的地址,因此使用指令“MOV PC ,LR...

    ARM汇编电子书

    ARM指令集: ADC 带进位的32位数加法 ADD 32位数相加 AND 32位数的逻辑与 B 在32M空间内的相对跳转指令 BIC 32位数的逻辑位清零 BKPT 断点指令 BL 带链接的相对跳转指令 BLX 带链接的切换跳转 BX 切换跳转 CDP\CDP2...

    ARM汇编与C语言混合编程PPT教学课件.pptx

    内嵌汇编器支持大部分ARM指令和Thumb指令,但是不支持诸如直接修改PC实现跳转的底层功能,也不能直接引用C语言中的变量。 ARM汇编语言和C语言的混合编程需要遵守ATPCS规定的寄存器使用规则、堆栈的使用规则和参数的...

    BL2028N芯片规格书 v1.0.pdf

    BL2028N 是一款高度集成的双模蓝牙 5.2 和 Wi-Fi 802.11n 组合解决方案,芯片集成了完整的Wi-Fi 和蓝牙应用所需的硬件和软件资源。它支持蓝牙经典功能,即基本速率(BR)和增强数据速率(EDR)以及蓝牙低能耗(LE)...

    ROP-without-Return-on-ARM-android-:重现报告中的实验

    在ARM中程序可以通过分支指令B,BL,BLX,BX等进行分支跳转(B-->Branch)。其中BLX和BX进行跳转时可根据标志位进行指令集的切换(ARM指令集和Thumb指令集)。如: adds r0, r7, #0 adds r1, r6, #0 blx r5 对于blx...

    Cortex M0_nRF51822的堆栈和LR例子,含汇编和C,研究函数在调用过程中堆栈和LR的变化

    在KEIL MDK中演示链接寄存器在BL指令执行时的变化,以及函数在调用过程中堆栈的压栈和出栈,从堆栈区里查看到没有栈帧里所述的PC、SP、FP等压栈。网上一篇文章说"ARM压栈的顺序很是规矩(也比较容易被黑客攻破么),...

Global site tag (gtag.js) - Google Analytics