1

是否可以编写汇编和c代码?假设我想从内存中复制一大块数据,在复制之前我想使用汇编指令禁用所有中断。另一种情况可能是我想添加用汇编语言编写的子程序。

请让我知道所有可能的方法。

4

2 回答 2

1

是的,您可以,在 C 语言中,您可以将__asm__(...);代码用于将汇编指令直接嵌入到已编译的代码中。

一个例子:__asm__("movb %ch, (%ebx)");

这里有一些关于它的文档:http: //www.codeproject.com/Articles/15971/Using-Inline-Assembly-in-CC

于 2013-08-23T05:38:28.547 回答
0

不,按照 C 标准,你不能。

但是,有编译器特定的方法可以做到这一点。检查编译器的内联汇编。

或者,您可以将要在单独的 .asm 文件中作为函数执行的程序集编写,然后从 C 中调用它。但是,您将始终有调用开销。

在 x64 上没有内联汇编。但是有一种叫做内在函数的东西,它可以让你做一些 C 不能做的事情。(它们取代了频率使用的 asm 代码)

您可以在此处阅读有关内在函数的更多信息:http: //msdn.microsoft.com/en-us/library/26td21ds.aspx

于 2013-08-23T05:42:14.207 回答