2011-02-08 175 views
4

我一直在浏览这里和互联网上的问题一段时间了,我似乎无法找出是否有可能在内联使用GCC以外的东西组装GCC。我试图找出是否可以避免使用GAS的AT & T语法(尽管我知道如何在GAS中使用英特尔语法)但扩展的asm格式。虽然这不是一个项目或任何非我自己的好奇心,但我真的很感激我能得到的任何帮助(这实际上是我的第一个问题,因为我找不到有关它的答案)!另外,如果这有什么不同,我目前在Windows上使用DevC++(用于C代码,而不是C++)。使用GCC的另一个汇编程序(MASM,NASM,TASM等)

感谢, 汤姆

回答

2

您可以从一个汇编与C或C++程序链接输出(名为 “.o” 或 “.OBJ” 文件)。把你的汇编代码放在一个文本文件中。您的IDE或makefile将像组合任何c源文件一样组装它。唯一棘手的问题是学习如何在两个不同的系统之间进行交互。

+0

是的,它是真正的“内联”还是只是一个外部函数调用汇编函数?你把它放在一个文本文件中是什么意思? IDE会为我组装吗? – atomictom 2011-02-08 23:24:08

+0

这不完全是对“使用GCC另一个汇编程序”*的答案,因为它不适用于具有内联汇编的源文件。我认为@ nelhage的答案是正确的(如果它仍然如此)。 – jww 2015-09-26 22:30:11

1

您不能对GCC使用另一个内联汇编语法。内联汇编由GCC实现,将您编写的汇编与其自己的(文本)汇编输出内联,然后将汇编输出到gas进行汇编。由于GCC不知道如何改变自己输出的格式以供给另一个汇编程序,因此无法更改内联汇编程序。