由于 MSVC10 不允许在针对 x64 架构时使用内联 ASM 指令,我正在寻找任何方法来绕过此类限制。我从谷歌搜索中了解到,编写和编译单独的 ASM 模块然后链接它们并从 C++ 调用它们是一种方法,但我不知道我将如何做到这一点。除了使用编译器内在函数之外,还有其他方法吗?或者如何针对 VS2010 中的单独 ASM 模块编写/编译/链接?
最佳答案
您可以使用单独的汇编程序,将完整的汇编源文件编译成目标文件。只要您遵循正确的调用约定,您就可以为 C++ 中使用的函数提供原型(prototype),将 C++ 和 ASM 生成的目标文件链接在一起。
我使用 yasm .它使用英特尔语法,支持 x64 窗口和 VS2010 integration .它具有有用的宏并包含功能。我必须承认,自从 VS2008 以来我就不必使用它了,当时集成的工作方式有点不同,但它应该与 VS2010 一起工作得很好。
关于c++ - 使用 MSVC10 编译 x64 C++ 时使用 ASM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570617/