昨天我了解到,在编译AMD64和Itanium目标时,Microsoft Visual C ++不支持内联汇编(使用__asm关键字)。
这是对的吗?如果是这样,有谁知道为什么他们不支持这些目标的内联汇编?这似乎是一个相当大的特点,只是放弃......
答案 0 :(得分:11)
正确,VS 2010 Beta 1仍然不支持。我的猜测是内联汇编实现起来太难了:Microsoft实现它的方式,它与周围的C代码集成,以便数据可以流入和流出C代码,并自动注入适当的胶水代码。为此,C编译器实际上需要理解汇编代码;他们只是没有为AMD64和Itanium实现这一点。
答案 1 :(得分:4)
放弃......似乎是一个相当大的特征。
只要遵循C约定,调用用汇编程序编写的函数就很容易了。 This tutorial解释了如何。