Jey*_*ram 1 c linux assembly x86-64
我正在寻找解释为什么我不能.s直接使用文件.
我试图在X86_64上学习汇编语言,这给了我汇编代码:
gcc -S sample.c
Run Code Online (Sandbox Code Playgroud)
为什么我不能直接使用它nasm?
我改名sample.s来sample.asm,并试图做到这一点:
nasm -f elf -l sample.lst sample.asm
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误(如果需要将发布).我以为中间文件是汇编代码.请澄清.
问题可能是来自GCC的程序集和nasm使用的程序集没有使用相同的语法!
GCC使用所谓的AT&T语法,而nasm使用标准的Intel语法.有关差异的一些信息,请参见http://en.wikipedia.org/wiki/X86_assembly_language#Syntax.