0

_asm32 ビット WDK でコンパイルしているときに (インライン アセンブリ)を使用しているアセンブリ コードを含むドライバー コードがありますが、次のエラーがスローされます。

「エラー C4235: 非標準の拡張子が使用されています: '_asm' キーワードはこのアーキテクチャではサポートされていません」

_asm次のコードを 64 ビット コンパイル用に変換してください。

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

1 に答える 1

3

Microsoftのコンパイラ組み込み関数を使用して、

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

これはx86とx64の両方で機能するはずです(もちろん、操作CR0はカーネルモードでのみ実行できます)。

于 2012-08-16T05:50:33.560 に答える