为什么MSVC不支持AMD64和Itanium目标的内联汇编?

时间:2009-08-18 17:46:06

标签: visual-c++ assembly x86-64 inline-assembly itanium

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

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

2 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:4)

  

放弃......似乎是一个相当大的特征。

只要遵循C约定,调用用汇编程序编写的函数就很容易了。 This tutorial解释了如何。