C 我在哪里可以找到这个.s文件中的代码文档?

C 我在哪里可以找到这个.s文件中的代码文档?,c,macos,assembly,clang,C,Macos,Assembly,Clang,我通过运行 clang -s hello.c 其中hello.c是以下文件的文件名: #include <stdio.h> main() { printf("Hello\n"); } 您可以在GAS手册中找到文档(clang/LLVM使用相同的语法,包括指令) 有关x86-64 AT&T语法的更多信息,请参见和中的链接 Clang/LLVM可以使用Intel语法,就像GCC一样,但指令不变clang--x86 asm syntax=intel,或者可能是-masm=inte

我通过运行

clang -s hello.c
其中
hello.c
是以下文件的文件名:

#include <stdio.h>

main() {

printf("Hello\n");

}

您可以在GAS手册中找到文档(clang/LLVM使用相同的语法,包括指令)

有关x86-64 AT&T语法的更多信息,请参见和中的链接

Clang/LLVM可以使用Intel语法,就像GCC一样,但指令不变
clang--x86 asm syntax=intel
,或者可能是
-masm=intel
,以便与GCC兼容

在clang或LLVM手册中也可能有一些内容。(但不要将其与:LLVM内部表示的asm语法混淆。)通过快速搜索,我没有找到任何关于
clang
如何处理GAS指令的LLVM文档


.globl\u main
不是标签本身。请注意,它位于对齐填充之前。它只是符号
\u main
的属性修饰符

\u main:
是输出文件中应用标签的位置


要了解这些说明,请参阅如何删除不相关的指令。

您可以在GAS手册中找到文档(clang/LLVM使用相同的语法,包括指令)

有关x86-64 AT&T语法的更多信息,请参见和中的链接

Clang/LLVM可以使用Intel语法,就像GCC一样,但指令不变
clang--x86 asm syntax=intel
,或者可能是
-masm=intel
,以便与GCC兼容

在clang或LLVM手册中也可能有一些内容。(但不要将其与:LLVM内部表示的asm语法混淆。)通过快速搜索,我没有找到任何关于
clang
如何处理GAS指令的LLVM文档


.globl\u main
不是标签本身。请注意,它位于对齐填充之前。它只是符号
\u main
的属性修饰符

\u main:
是输出文件中应用标签的位置


要理解这些指令,请参阅如何去掉不相关的指令。

我想它叫GNU汇编程序,我在这里找到了它的文档:。

我想它叫GNU汇编程序,我在这里找到了它的文档:。

我想它叫GNU汇编程序……我想它叫GNU汇编程序……嘿,我终于在谷歌上偶然发现了一些链接。谢谢你的意见!还有额外的链接和信息。请注意,这是在macOS上。我不确定他们是否在那里使用了特殊的汇编程序。@fuz:很确定它仍然是铿锵/LLVM。IDK,如果他们修补它以添加任何特殊指令。我想知道
.build\u version
@PeterCordes我知道现在clang提供了GNU的一个重新实现。@fuz:很确定那只是clang,运行clang/LLVM的内置汇编程序。与在Linux上运行
clang-cfoo.s
时完全一样。不确定是否已过时,但那里的答案报告GNU binutils
as
无法创建MachO64对象文件。OTOH我还看到一份报告说GNU binutils
objdump
gobjdump
)在mac上从macports安装后确实有效:嘿,我终于开始在Google上偶然发现一些链接了。谢谢你的意见!还有额外的链接和信息。请注意,这是在macOS上。我不确定他们是否在那里使用了特殊的汇编程序。@fuz:很确定它仍然是铿锵/LLVM。IDK,如果他们修补它以添加任何特殊指令。我想知道
.build\u version
@PeterCordes我知道现在clang提供了GNU的一个重新实现。@fuz:很确定那只是clang,运行clang/LLVM的内置汇编程序。与在Linux上运行
clang-cfoo.s
时完全一样。不确定是否已过时,但那里的答案报告GNU binutils
as
无法创建MachO64对象文件。OTOH我还看到一份报告说GNU binutils
objdump
(显然是从macports安装后在mac上安装的)确实有效:
  .section  __TEXT,__text,regular,pure_instructions
  .build_version macos, 10, 14  sdk_version 10, 14
  .globl  _main                   ## -- Begin function main
  .p2align  4, 0x90
_main:                                  ## @main
  .cfi_startproc
## %bb.0:
  pushq %rbp
...