GNU Gas 汇编中的等号赋值“x = 1”和“.equ x, 1”或“.set x, 1”之间有区别吗?

Cir*_*四事件 5 assembly gnu-assembler

例如:

a = 1
Run Code Online (Sandbox Code Playgroud)

和:

.equ a, 1
Run Code Online (Sandbox Code Playgroud)

和:

.set a, 1
Run Code Online (Sandbox Code Playgroud)

所有这些都在以下情况下逐字节产生相同的输出:

as --32 main.S
Run Code Online (Sandbox Code Playgroud)

根据cmp

我知道这一点.equ,并.set根据以下文档执行相同的操作.equhttps://sourceware.org/binutils/docs-2.25/as/Equ.html

它与“.set”同义。

我知道ARM 汇编中 .equ 和 .word 之间的区别.equ是什么?

那么呢=?和另外两个一样吗?

Cir*_*四事件 5

这是相同的。

在 grep 文档源之后,我找到了确认它的部分https://sourceware.org/binutils/docs-2.25/as/Setting-Symbols.html

通过编写一个符号,后跟一个等号“=”,再跟一个表达式,可以为符号赋予任意值(请参阅表达式)。这相当于使用 .set 指令。