B、BL、BX、BLX 和 BXJ

跳转、带链接跳转、跳转并切换指令集、带链接跳转并切换指令集、跳转并转换到 Jazelle 状态。

语法

op1{cond}{.W} <wbr />labelop2{cond} <wbr />Rm

其中:

op1

是下列项之一:

B

跳转。

BL

带链接跳转

BLX

带链接跳转并切换指令集。

op2

是下列项之一:

BX

跳转并切换指令集。

BLX

带链接跳转并切换指令集。

BXJ

跳转并转换为 Jazelle 执行。

cond

是一个可选的条件代码。 cond 不能用于此指令的所有形式。

.W

是一个可选的指令宽度说明符,用于强制要求在 Thumb-2 中使用 32 位 B 指令。

label

是一个程序相对的表达式。

Rm

是一个寄存器,包含要跳转到的目标地址。

操作

所有这些指令均会引发跳转,或跳转到 label,或跳转到包含在 Rm 中的地址处。 此外:

BL 和 BLX 指令可将下一个指令的地址复制到 lr(r14,链接寄存器)中

BX 和 BLX 指令可将处理器的状态从 ARM 更改为 Thumb,或从 Thumb 更改为 ARM

BLX label 无论何种情况,始终会更改处理器的状态。

BX Rm 和 BLX Rm 可从 Rm 的位 [0] 推算出目标状态:

如果 Rm 的位 [0] 为 0,则处理器的状态会更改为(或保持在)ARM 状态

如果 Rm 的位 [0] 为 1,则处理器的状态会更改为(或保持在)Thumb 状态。

BXJ 指令会将处理器的状态更改为 Jazelle

汇编指令B、BL、BX、BLX 和 BXJ的区别相关推荐

  1. ARM汇编指令(B/BL/BX)

    跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: (1) 使用专门的跳转指令. (2) 直接向程序计数器 PC 写入跳转地址值. 通过向程序计数器 PC 写入跳转地 ...

  2. 汇编跳转指令B、BL、BX、BLX 和 BXJ的区别

    已针对原链接错误翻译并更正                                                    跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程 ...

  3. ARM base instruction -- b bl bx blx

    'B{cond}  <target_address> '分支指令 - 类似于goto {} 代表可有可无,<>代表缺少就报错,cond为指令执行的条件码,target_addr ...

  4. S5PV210体系结构与接口02:ARM编程模型 汇编指令

    目录 1. ARM的基本设定 1.1 ARM数据类型 1.1.1 基本数据类型 1.1.2 浮点数据类型 1.1.3 存储器大小端 1.2 支持的指令集 2. Cortex-A8编程模型 2.1 处理 ...

  5. 常用的ARM汇编指令总结

    第一次写博客,请各路大神多多关照. 本人从事软件开发相关的工作,平时主要用c语言撸代码,前段时间因工作需要,接触到了ARM架构下的汇编指令,之前学过51单片机的汇编指令,早已经还给老师了,且ARM汇编 ...

  6. FreeRTOS中汇编指令

    汇编程序前要加PRESERVE8 require8和preserve8c和汇编有8位对齐的要求,这两个伪指令能够满意此要求 LDR和MOV LDR Rn, label1 LDR指令负责将label1所 ...

  7. 汇编指令的学习2——常用的ARM指令

    一.常用ARM指令1:数据处理指令 (1)数据传输指令 mov mvn(源目标按位取反后赋给目标) (2)算术指令 add sub rsb adc sbc rsc (3)逻辑指令 and orr eo ...

  8. 操作符指令 - ARM汇编指令(二)

    ARM包含6种重要的数据计算处理指令 数据处理指令格式与条件码 条件码 ARM汇编特点3:指令后缀 同一指令经常附带不同后缀,变成不同的指令.经常使用的后缀有: B(byte)功能不变,操作长度变为8 ...

  9. 01 ARM体系结构与汇编指令

    注:本文章是由笔者学习朱有鹏arm的学习笔记,特此感谢朱老师. 关于汇编: 1.汇编的实质是机器指令(机器码)的 助记符,是一款CPU的本质特征. 2.不同CPU的机器指令集设计不同,因此 汇编程序不 ...

最新文章

  1. 以太坊第五年,未来该往哪走?
  2. 一次家庭作业意外搞定40年前的数学猜想,牛津小哥:我只研究了几个礼拜
  3. node的包管理工具:yarn和npm
  4. pyinstaller将python脚本转成exe可执行文件
  5. .net core 微服务下的手工签名实现,以及消除中文乱码
  6. java编译找不到符号 int age=in.nexint()_Java报错找不到符号,小白自学求大佬解决...
  7. js页面传值php页面,php实现跳转传值有什么方法,js页面跳转传值
  8. 如何测一个纸杯_阿薇塔罗——4个吊坠,凭直觉选一个,测你这辈子婚姻状况如何?...
  9. 基于 Flink SQL CDC的实时数据同步方案
  10. Java 金额转换 阿拉伯数字金额转换成汉字大写金额
  11. echart获取geoJson格式世界各国地图的资源,世界地图,世界各国分区显示,精确到乡镇一级资源
  12. 蓝桥杯李白打酒php,蓝桥杯:李白打酒
  13. TV(智能电视)app开发,电视wifi连接Android studio 真机调试
  14. electron设置淘宝镜像
  15. robotframework基础入门:(3):找不到关键字的对应方法
  16. 网络知识 ACL NAT IPv6
  17. 超有用的前端配色网站
  18. USB设备短路致使电脑故障的一些启发
  19. 高新技术企业认定对企业有什么弊端?
  20. 热血传奇资源文件wzl、wzx解析

热门文章

  1. xp系统如何开启dhcp服务器,WinXP系统下怎么配置DHCP?WindowsXP系统配置DHCP的方法...
  2. sentry mysql_关于Sentry(转)
  3. 字符串逆序(C语言)
  4. 病狗问题以及帽子颜色那个题
  5. 一份Java程序员进阶架构师的秘籍,你离架构师还差多远
  6. 鼎捷T100制造之工艺工单实战(其他工艺补充)
  7. 大家注意了!这是个骗子!
  8. 企业库是如何调用存储过程的
  9. 一般而言,以下不属于操作系统内核功能的是()————操作系统
  10. redshift mysql_使用Python迁移redshift mysql