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