【发布时间】:2017-10-13 02:24:29
【问题描述】:
我有一些.asm 文件使用英特尔汇编格式。
有没有办法用 GCC/G++ 编译这些文件?
我知道 NASM 和 YASM 可以选择编译 .asm 文件,但是 GCC/G++ 可以自己完成吗?使用 NASM,我使用 -fwin64 标志来制作 64 位目标文件。
我使用的是 Windows 64 位。
【问题讨论】:
-
gcc -c myfile.s -o myfile.o
-
不,我的意思是如何运行 gcc -c *.asm?
-
您能否通过编辑您的问题并添加它来向我们展示您尝试组装的代码。我问这个是因为为 asm 文件编写的汇编程序真的很重要。 GCC 通常通过将
.s和.S汇编文件传递给 GNU 汇编器来处理它们。 GNU 汇编器的语法与 NASM 汇编器之类的不同。如果您提供了汇编代码,我们可以确定您真正想要做什么。 -
如果你有一个 NASM 汇编文件,那么你可以用
nasm -f elf32 myfile.asm -o myfile.o之类的东西来组装它,然后你可以使用 GCC 将它链接到一个带有 @987654327 之类的可执行文件@ .如果 64 位代码将32替换为64。 GCC 无法组装用于 NASM 的文件。 -
好的,据我了解,gcc 不能直接编译.asm 文件,.asm 应该由nasm 那样编译,对吧?我的意思是,如果 gcc 可以识别 .asm 格式并将其构建在一起?