interrupt

来源:互联网 发布:js 产生2 8随机数 编辑:程序博客网 时间:2024/05/16 15:37

x86:

  _asm

  {

      CLI                    //dissable interrupt

      MOV    EAX, CR0        //move CR0 register into EAX

      AND EAX, NOT 10000H //disable WP bit 

      MOV    CR0, EAX        //write register back

  }

  _asm 

  {

      MOV    EAX, CR0        //move CR0 register into EAX

      OR     EAX, 10000H        //enable WP bit     

      MOV    CR0, EAX        //write register back        

      STI                    //enable interrupt

  }

x64:

void WPOFFx64()

{

UINT64 cr0=__readcr0();

cr0 &= 0xfffffffffffeffff;

__writecr0(cr0);

_disable(); //cli

}

void WPONx64()

{

UINT64 cr0=__readcr0();

cr0 |= 0x10000;

_enable(); //sti

__writecr0(cr0);

}