- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究运行 Cortex-M4 处理器和 ARM/Thumb 指令集的 STM32l475 微 Controller 。我看到(来自 objdump
)有 beq.n
和 bne.n
在 ARM 程序的二进制文件中生成的指令(我在编译程序时添加了 -mthumb
标志)。但是,我在最新的 ARMv7-M 中没有找到这些分支指令。手动的。
谁能告诉我原因?以及手册中与这两条分支指令等效的指令有哪些?
最佳答案
beq
和 bne
是条件分支;换句话说,它们是无条件分支 b
的条件版本. eq
和 ne
是两个不同的条件代码;它们在 A7.3 节中描述。 beq
表示分支,如果相等且 bne
如果不相等,则表示分支。b
分支指令在 Thumb 模式下有两种不同的编码。您看到的编码可能是 A7.7.12 节中描述的编码 T1:
B<c> <label>
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 1 [-<cond>--] [--------imm8---------]
eq
或
ne
)被直接编码到指令中,在第 8-11 位。从 objdump 反汇编显示条件代码代替
<c>
以上。因此,使用 A7.3 节中的条件代码表,您将编码
beq
如
11010000[imm8]
.
关于arm - ARMv7-M 手册中没有 "beq"或 "bne"指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55340164/
我有一组说明如下: loop: sll $t1, $t0, 2 # t1 = (i * 4) add $t2, $a0, $t1
所以,我会引用我的教科书(计算机组织与设计),然后我会问我的问题: Compiling if-then-else into Conditional branches In the following
我正在研究运行 Cortex-M4 处理器和 ARM/Thumb 指令集的 STM32l475 微 Controller 。我看到(来自 objdump )有 beq.n和 bne.n在 ARM 程序
例如,在 add 上我们有 addi 用于添加一个寄存器和一个立即数,为什么在这种情况下我们不能有 bnei 或 beqi ... 我应该回答这个问题,但我不确定...有什么帮助吗? 最佳答案 原因是
例如,在 add 上我们有 addi 用于添加一个寄存器和一个立即数,为什么在这种情况下我们不能有 bnei 或 beqi ... 我应该回答这个问题,但我不确定...有什么帮助吗? 最佳答案 原因是
我有这个汇编代码,我应该将其转换为二进制形式的机器代码: .text .align 2 .global main .equ val,0x
我是一名优秀的程序员,十分优秀!