Intel:80386运行模式


80386有四种运行模式:实模式、保护模式、SMM模式和虚拟8086模式。以下主要是对实模式和保护模式做一个简单介绍。

实模式:80386加电启动后出于实模式运行状态,在这种状态下软件可访问的内存空间不足1MB,并且不能发挥80386以上级别的32位CPU的4GB内存寻址能力。实模式将整个内存看成分段的区域,程序的代码和数据位于不同的区域,系统对操作系统程序和用户程序是相同看待的,不做区分,并且每一个指针都指向实际的物理地址。如果用户程序的一个指针对于操作系统区域或其它用户程序的数据进行了修改,那么就会造成严重的后果。

(1)80386的实模式是为了兼容8086处理器而设定的。在实模式下,80386处理器就相当与8086处理器。80386处理器被复位或加电的时候以实模式启动。这时候处理器中的各个寄存器以实模式的初始化工作,并且有和8086相同的寻址方式,有段寄存器中的基地址*16+段内的偏移地址形成最后的物理地址。这时候它的32位地址线用了20位,即可寻址1MB的空间。
(2)实模式下,80386不能对内存进行页机制的管理,所以指令寻址的地址就是内存中的实际地址。
(3)实模式下所有的段都是可读、可执行的。实模式下80386不支持特权级,所有的指令都相当于工作在特权级(优先级0),所以可以执行所有的特权指令。
(4)模式下不支持硬件上的多任务切换。
(5)实模式下的中断处理方式和8086相同,也用中断向量表来定位中断服务程序地址。中断向量的结构也和8086相同,每4个字节组成一个中断向量,其中包括两个字节的段地址和两个字节的偏移地址。

保护模式:实际上80386是通过在实模式下初始化控制寄存器,GDTR(全局段描述符表寄存器)、LDTR(局部段描述符表寄存器)、IDTR(中断描述符表寄存器)等寄存器以及页表,然后再通过加载CR0使其中的保护模式位置位1而进入保护模式。
(1)80386工作在保护模式下,32根地址线全部使用,可达4GB的寻址空间。在保护模式下支持分页机制,提供了对虚拟内存的良好支持。
(2)保护模式下80386支持多任务切换,支持优先级机制,不同的程序运行在不同的优先级,优先级一般分为0~34个等级,操作系统运行在最高级别0级,应用程序运行在较低的级别,配合良好的机制就可以实现数据的安全共享并且可以很好的隔离各个任务。

Intel80386的寄存器
80386的寄存器可以分为8组:通用寄存器、段寄存器、指令指针寄存器、标志寄存器、系统地址寄存器、控制寄存器、调式寄存器、测试寄存器,他们的宽度都是32位。但是一般程序员看到的寄存器都是通用寄存器、段寄存器、指令指针寄存器、标志寄存器。(较8086寄存器多了2个段寄存器FS、GS还有4个控制位)

你可能感兴趣的:(操作系统)