回 帖 发 新 帖 刷新版面

主题:[讨论]这个汇编为什么在VC下执行会异常呢?

void DisableWriteProtect()
{
    __asm  {                  
        cli      
        mov   eax, cr0      
        and   eax, 0FFFEFFFFh
        mov   cr0, eax         
    }      
}

void EnableWriteProtect()
{
    __asm  {              
        mov   eax, cr0  
        or   eax, not 0FFFEFFFFh    
        mov   cr0, eax  
        sti
    }
}
这个汇编为什么在VC下执行会异常呢?

回复列表 (共5个回复)

沙发

WINDOWS已经是在保护模式下了,你直接修改CR0当然不行了:)
因为你要知道你的程序是运行在3级权限下而不是0级:)

板凳

那我按F8键从安全模设进入就可以了吗?

3 楼

当然不行,安全模式与保护模式完全是两个不同的概念:)

4 楼


那怎么进入保护模式呢?

5 楼

系统原本就是在保护模式下执行的,只是您想问的是如何拿到0级权限吧:)
系统级的驱动就是在0级——如果我没记错的话:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册