否";beq";或;bne“;ARMv7-M手册中的说明?

否";beq";或;bne“;ARMv7-M手册中的说明?,arm,armv7,cortex-m,Arm,Armv7,Cortex M,我正在研制一个STM32l475微控制器,它运行Cortex-M4处理器和ARM/Thumb指令集。我看到(从objdump)有beq.n和bne.n指令是在ARM程序的二进制文件中生成的(我在编译程序时添加了-mthumb标志)。但是,我在最新的手册中找不到这些分支说明 谁能告诉我原因吗?手册中有哪些指令与这两个分支指令等效?beq和bne是条件分支;换句话说,它们是无条件分支b的条件版本eq和ne是两种不同的条件码;第A7.3节对其进行了描述beq如果相等,则表示分支;bne如果不相等,则表

我正在研制一个STM32l475微控制器,它运行Cortex-M4处理器和ARM/Thumb指令集。我看到(从
objdump
)有
beq.n
bne.n
指令是在ARM程序的二进制文件中生成的(我在编译程序时添加了
-mthumb
标志)。但是,我在最新的手册中找不到这些分支说明


谁能告诉我原因吗?手册中有哪些指令与这两个分支指令等效?

beq
bne
是条件分支;换句话说,它们是无条件分支
b
的条件版本
eq
ne
是两种不同的条件码;第A7.3节对其进行了描述
beq
如果相等,则表示分支;
bne
如果不相等,则表示分支

b
分支指令在Thumb模式下有两种不同的编码。您看到的编码可能是第A7.7.12节中描述的T1编码:

B

1513121010987654310
10101[--][--imm8-----]
在此编码中,条件代码(如
eq
ne
)直接编码到指令中,以位8-11表示。从objdump反汇编显示条件代码以代替上面的
。因此,使用第A7.3节中的条件代码表,将
beq
编码为
11010000[imm8]

15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
 1  1  0  1 [-<cond>--] [--------imm8---------]