**cr0寄存器的第17位就是内存写保护开关,当为0就关闭写保护,为0开启写保护**
__asm
{
cli;//将处理器标志寄存器的中断标志位清0,不允许中断
mov eax, cr0
and eax, ~0x10000//这里就是第17为设置为0,其他位不变
mov cr0, eax
}
这里写修改内存的代码
/
__asm
{
mov eax, cr0
or eax, 0x10000//将17位置1,其他位不变
mov cr0, eax
sti;//将处理器标志寄存器的中断标志置1,允许中断
}