ArmV7A 汇编代码的 ARM-GCC 代码指令:.code 与 .arm 指令模式指令
ARM-GCC code directives for ArmV7A assembly code: .code vs .arm instruction mode directives
汇编文件中的 .code32
、.code 32
和 .arm
指令有什么区别?
.S文件将用arm-none-eabi-as
编译
这三个指令是否相同? None 这些指令在程序员指南 (https://developer.arm.com/documentation/den0013/d/Introduction-to-Assembly-Language/Introduction-to-the-GNU-Assembler/Assembler-directives?lang=en) 中进行了解释,所以我自己很难回答这个问题。
本质上,我们希望确保在给定的 .S 文件中编写的所有函数都处于 ARM32 指令模式(即不是 Thumb)。
--
更新:看起来和我想象的一样 .code32
!其他两个指令是相同的,.arm
实际上只是 shorthand for .code 32
.
为快速回复干杯!
它们记录在 GNU 汇编程序手册中 https://sourceware.org/binutils/docs/as/ARM-Directives.html#ARM-Directives。
.code [16|32]
This directive selects the instruction set being generated. The value 16 selects Thumb, with the value 32 selecting ARM.
.arm
This performs the same action as .code 32
.
所以任何一个都会做你想做的。
未提及 .code32
变体。正如您所注意到的,它实际上在 GNU 中不起作用。这可能是一个拼写错误,或者某些版本可能具有允许 space 可选的语法。
汇编文件中的 .code32
、.code 32
和 .arm
指令有什么区别?
.S文件将用arm-none-eabi-as
这三个指令是否相同? None 这些指令在程序员指南 (https://developer.arm.com/documentation/den0013/d/Introduction-to-Assembly-Language/Introduction-to-the-GNU-Assembler/Assembler-directives?lang=en) 中进行了解释,所以我自己很难回答这个问题。
本质上,我们希望确保在给定的 .S 文件中编写的所有函数都处于 ARM32 指令模式(即不是 Thumb)。
--
更新:看起来和我想象的一样 .code32
!其他两个指令是相同的,.arm
实际上只是 shorthand for .code 32
.
为快速回复干杯!
它们记录在 GNU 汇编程序手册中 https://sourceware.org/binutils/docs/as/ARM-Directives.html#ARM-Directives。
.code [16|32]
This directive selects the instruction set being generated. The value 16 selects Thumb, with the value 32 selecting ARM.
.arm
This performs the same action as
.code 32
.
所以任何一个都会做你想做的。
未提及 .code32
变体。正如您所注意到的,它实际上在 GNU 中不起作用。这可能是一个拼写错误,或者某些版本可能具有允许 space 可选的语法。