簡體   English   中英

Windows上將32位_asm代碼轉換為64位匯編代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM