gpt4 book ai didi

arm - ARMv7-M 手册中没有 "beq"或 "bne"指令?

转载 作者:行者123 更新时间:2023-12-03 20:28:40 30 4
gpt4 key购买 nike

我正在研究运行 Cortex-M4 处理器和 ARM/Thumb 指令集的 STM32l475 微 Controller 。我看到(来自 objdump )有 beq.nbne.n在 ARM 程序的二进制文件中生成的指令(我在编译程序时添加了 -mthumb 标志)。但是,我在最新的 ARMv7-M 中没有找到这些分支指令。手动的。

谁能告诉我原因?以及手册中与这两条分支指令等效的指令有哪些?

最佳答案

beqbne是条件分支;换句话说,它们是无条件分支 b 的条件版本. eqne是两个不同的条件代码;它们在 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---------]

在这种编码中,条件代码(如 eqne )被直接编码到指令中,在第 8-11 位。从 objdump 反汇编显示条件代码代替 <c>以上。因此,使用 A7.3 节中的条件代码表,您将编码 beq11010000[imm8] .

关于arm - ARMv7-M 手册中没有 "beq"或 "bne"指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55340164/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com