使用ASM编译x64 C++时,如何使用MSVC10?

3

由于MSVC10不允许在针对x64架构时使用内联ASM指令,因此我正在寻找任何可以绕过此类限制的方法。通过搜索得知,编写和编译单独的ASM模块,然后链接并从C++中调用它们是一种方法,但我不知道该如何实现。除了使用编译器内置函数之外,还有其他方法吗?或者如何在VS2010中编写/编译/链接单独的ASM模块?

1个回答

3
您可以使用一个单独的汇编程序,将完整的汇编源文件编译成目标文件。只要遵循正确的调用约定,您可以为函数提供原型,以便在C ++中链接C ++和ASM生成的目标文件。

我使用 yasm 。它使用英特尔语法,支持x64 Windows和VS2010集成。它具有有用的宏和包含功能。我必须承认,自从VS2008以来,集成的工作方式有点不同,但它应该能很好地与VS2010配合使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接