我正在寻找解释为什么我不能直接使用.s
文件。
我正在尝试在X86_64上学习汇编语言,这给了我汇编代码:
gcc -S sample.c
为什么我不能直接使用nasm
运行它?
我将sample.s
重命名为sample.asm
并尝试执行此操作:
nasm -f elf -l sample.lst sample.asm
但它给了我一个错误(如果需要会发布)。我以为中间文件是汇编代码。请澄清。
答案 0 :(得分:5)
问题可能是来自GCC的程序集和nasm使用的程序集没有使用相同的语法!
GCC使用所谓的AT& T语法,而nasm使用标准的英特尔语法。参见例如http://en.wikipedia.org/wiki/X86_assembly_language#Syntax了解有关差异的一些信息。