[英]32 bit _asm code to 64 bit assembly code on Windows
我有一個驅動程序代碼,使用32位WDK進行編譯時,正在使用_asm
(內聯程序集)的程序集代碼正常工作,但會引發以下錯誤:
“錯誤C4235:使用了非標准擴展名:此體系結構不支持'_asm'關鍵字”
請轉換以下_asm
代碼進行64位編譯。
_asm
{
mov ebx, cr0
push ebx
and ebx, ~010000h
mov cr0, ebx
}
使用Microsoft的編譯器內部函數,
#include <intrin.h>
__writecr0(__readcr0() & ~0x1000);
這應該在x86和x64上都可以工作(當然,只能在內核模式下操作CR0
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.