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 binutilsas
无法创建MachO64对象文件。OTOH我还看到一份报告说GNU binutilsobjdump
(gobjdump
)在mac上从macports安装后确实有效:嘿,我终于开始在Google上偶然发现一些链接了。谢谢你的意见!还有额外的链接和信息。请注意,这是在macOS上。我不确定他们是否在那里使用了特殊的汇编程序。@fuz:很确定它仍然是铿锵/LLVM。IDK,如果他们修补它以添加任何特殊指令。我想知道.build\u version
@PeterCordes我知道现在clang提供了GNU的一个重新实现。@fuz:很确定那只是clang,运行clang/LLVM的内置汇编程序。与在Linux上运行clang-cfoo.s
时完全一样。不确定是否已过时,但那里的答案报告GNU binutilsas
无法创建MachO64对象文件。OTOH我还看到一份报告说GNU binutilsobjdump
(显然是从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
...