汇编指令B,BL,BX,BLX 和 BXJ的区别

ARM架构下B,根据标签分支执行指令BL,根据标签分支且在LR链接寄存器下记录BX,根据寄存器中的地址分支,并切换处理器ARM和Thumb状态BLX ,综合以上3个,分支、存链接、根据标签或寄存器中地址分支、交换状态。BXJ,同BX,根据寄存器中的地址分支,但切换到Jazelle(Java)处理器状态. ARM v8后Java产品取消等同于BX...
跳转、带链接跳转、跳转并切换指令集、带链接跳转并切换指令集、跳转并转换到 Jazelle 状态。语法op1{cond}{.W} labelop2{cond} 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
文章标签:

本文链接:https://www.u1e.cn/baike/a/0839b61b28772237dadd943a [复制]

猜你喜欢

歇后语大全

还没有人回应过