void disable_write_protection_cr0( void ) { unsigned long value; asm volatile("mov %%cr0,%0":"=r" (value)); if( value & 0x00010000 ) { value &= ~0x00010000; asm volatile("mov %0,%%cr0"::"r" (value)); } }