保护模式

来源:互联网 发布:js cst时间转换 编辑:程序博客网 时间:2024/05/17 17:15

        保护模式8028616以来现代的Intel处理器主要运行模式。在80386和以后的系列CPU上,32保护模式(以下简称为保护模式允许工作在几个虚拟地址空间下,其中每一个具有最大4GB可寻址存储空间;并且使系统能够执行严格的内存和硬件I / O防护,同时也限制了可用的指令集(让您的应用程序不能直接访问硬件内核可以

       一个BIOS初始化的CPU工作实模式启用保护模式能充分释放出CPU的真实能力但是,它阻止你使用大多数BIOS中断尽管这些中断在实模式下正常工作除非您让代码运行在虚拟8086模式)。

        在切换到保护模式前,你必须禁止中断包括NMI就像英特尔开发者手册所建议的那样使能A20线加载包含符合代码,数据和堆栈段描述符全局描述符表(GDT)

       CPU处于实模式保护模式是由CR0MSW寄存器的最低位定义下面这个例子加载一个描述符表到处理器的寄存器GDTR然后获取CR0最低位

cli          ; disable interruptslgdt [gdtr]  ; load GDT register with start address of Global Descriptor Tablemov eax, cr0 or al, 1     ; set PE (Protection Enable) bit in CR0 (Control Register 0)mov cr0, eax ; Perform far jump to selector 08h (offset into GDT, pointing at a 32bit PM code segment descriptor) ; to load CS with proper PM32 descriptor)JMP 08h:PModeMain ; [...] PModeMain:; load DS, ES, FS, GS, SS, ESP.

        这将会让你的操作系统进入保护模式。祝你好运!


另请参阅:

文章

  • Real Mode
  • Virtual 8086 Mode
  • Journey To The Protected Land

外部链接

  • OSRC: protected mode
  • http://home.swipnet.se/smaffy/asm/info/embedded_pmode.pdf - pragmatic tutorial on pmode (Cached copy)
  • http://www.osdever.net/tutorials.php?cat=4&sort=1

0 0
原创粉丝点击