我有一个驱动程序代码,如果正在使用_asm
(内联汇编)的汇编代码,当我在32位WDK中进行编译时,它的工作正常,但它会抛出以下错误:
“错误C4235:使用了非标准扩展名:'_ asm'关键字没有 支持这种架构“
请转换以下_asm
代码进行64位编译。
_asm
{
mov ebx, cr0
push ebx
and ebx, ~010000h
mov cr0, ebx
}
答案 0 :(得分:3)
使用Microsoft的编译器内在函数,
#include <intrin.h>
__writecr0(__readcr0() & ~0x1000);
这应该适用于x86和x64(当然,操作CR0
只能在内核模式下完成)。