0

_asm当我在 32 位 WDK 中编译时,我有一个使用(内联汇编)它工作正常的汇编代码的驱动程序代码,但它抛出以下错误:

“错误 C4235:使用了非标准扩展:此架构不支持‘_asm’关键字”

请转换以下_asm代码以进行 64 位编译。

_asm
    {
        mov     ebx, cr0 
        push    ebx 
        and     ebx, ~010000h 
        mov     cr0, ebx
    } 
4

1 回答 1

3

使用微软的编译器内在函数,

#include <intrin.h>
__writecr0(__readcr0() & ~0x1000);

这应该适用于 x86 和 x64(当然操作CR0只能在内核模式下完成)。

于 2012-08-16T05:50:33.560 回答