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