.s文件可以直接执行吗?

Jey*_*ram 1 c linux assembly x86-64

我正在寻找解释为什么我不能.s直接使用文件.

我试图在X86_64上学习汇编语言,这给了我汇编代码:

gcc -S sample.c 
Run Code Online (Sandbox Code Playgroud)

为什么我不能直接使用它nasm

我改名sample.ssample.asm,并试图做到这一点:

 nasm -f elf -l sample.lst  sample.asm
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误(如果需要将发布).我以为中间文件是汇编代码.请澄清.

Som*_*ude 5

问题可能是来自GCC的程序集和nasm使用的程序集没有使用相同的语法!

GCC使用所谓的AT&T语法,而nasm使用标准的Intel语法.有关差异的一些信息,请参见http://en.wikipedia.org/wiki/X86_assembly_language#Syntax.