13

昨天我了解到,在为 AMD64 和 Itanium 目标编译时,Microsoft Visual C++ 不支持内联汇编(带有 __asm 关键字)。

那是对的吗?如果是这样,有谁知道他们为什么不支持这些目标的内联汇编?只是放弃似乎是一个相当大的功能......

4

2 回答 2

12

正确, VS 2010 Beta 1仍然不支持它。我的猜测是内联汇编太难实现了:微软实现它的方式,它与周围的 C 代码集成,以便数据可以流入和流出 C 代码,并自动注入适当的胶水代码。为此,C 编译器实际上需要理解汇编代码;他们只是还没有为 AMD64 和 Itanium 实现这一点。

于 2009-08-18T17:53:58.510 回答
5

只是放弃似乎是一个相当大的功能......

只要遵循 C 约定,调用用汇编程序编写的函数非常容易。本教程解释了如何。

于 2009-08-18T17:59:28.967 回答