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

时间:2012-07-18 10:20:42

标签: c linux assembly x86-64

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

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

gcc -S sample.c 

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

我将sample.s重命名为sample.asm并尝试执行此操作:

 nasm -f elf -l sample.lst  sample.asm

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

1 个答案:

答案 0 :(得分:5)

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

GCC使用所谓的AT& T语法,而nasm使用标准的英特尔语法。参见例如http://en.wikipedia.org/wiki/X86_assembly_language#Syntax了解有关差异的一些信息。