是否可以编写汇编和c代码? 假设我想从内存中复制一大块数据,在复制之前我想使用汇编指令禁用所有中断。 另一种情况可能是我想用汇编语言编写添加子程序。
请让我知道所有可行的方法。
答案 0 :(得分:1)
是的,您可以在C中使用__asm__(...);
代码将汇编指令直接嵌入到已编译的代码中。
例如:__asm__("movb %ch, (%ebx)");
以下是有关它的一些文档:http://www.codeproject.com/Articles/15971/Using-Inline-Assembly-in-C-C
答案 1 :(得分:0)
不,按照C标准你不能。
但是,有编译器特定的方法可以这样做。检查编译器的内联汇编。
或者您可以将要在单独的.asm文件中执行的程序集作为函数编写,然后从C中调用它。但是,您将始终具有该调用开销。
在x64上没有内联汇编。然而,有一个叫做内在函数的东西允许你做一些C不能做的事情。(它们取代了用作代码的频率)
您可以在此处阅读有关内在函数的更多信息: http://msdn.microsoft.com/en-us/library/26td21ds.aspx