我正在尝试学习汇编,一开始我是使用NASM进行编译,但后来我知道我可以在gcc中使用.s文件。因此,我满怀兴奋地开始和gcc一起编译c到汇编(.s文件),并对其进行了检查。当我这样做的时候,它看起来像是以一种不同于NASM汇编的方式构造,只有main label,f.eks,没有_start和其他奇怪的结构,我不是在谈论Intel- vs AT&T语法。所以我的问题如下:
这是一个不同的结构,在正常的汇编和.s文件在gcc,或只是我没有足够的汇编</em
我正在试着和gcc一起创建一个可执行文件。我有两个文件: virtualstack.c (由下面的C代码组成)和stack.s (由用AT&T语法编写的英特尔x86汇编代码组成)(参见下面的C代码)。我的命令行命令是gcc -c virtualstack.c -s stack.s,但是我得到了两个错误(stack.s中的第3行)- missing symbol name in directive和no我认为我已经正确地在汇编中声明了C中的函数,并以下划线(_)为前缀。如果有任何意见,我将非常感激。#include