保护模式实模式那么什么是实模式呢?CPU复位(reset)或加电(power on)的时候以实模式启动,处理器以实模式工作
在实模式下,内存寻址方式和8086相同,由16位段寄存器的内容乘以16(10H)当做段基地址,加上16位偏移地址形成20位的物理地址,最大寻址空间1MB,最大分段64KB
可以使用32位指令
32位的x86 CPU用做高速的8086
在实模式下,所有的段都是可以读、写和可执行的
保护模式与实模式相比,主要是两个差别:一是提供了段间的保护机制,防止程序间胡乱访问地址带来的问题,二是访问的内存空间变大,见前面的描述
在8086/8088时代,处理器只存在一种操作模式(Operation Mode),当时由于不存在其它操作模式,因此这种模式也没有被命名
自从80286到80386开始,处理器增加了另外两种操作模式——保护模式和系统管理模式SMM(System Management Mode),因此,8086/8088的模式被命名为实地址模式RM(Real-address Mode)
保护模式是处理器的本机模式,在这种模式下,处理器支持所有的指令和所有的体系结构特性,提供最高的性能和兼容性
对于所有的新型应用程序和操作系统来说,建议都使用这种模式
为了保证PM的兼容性,处理器允许在受保护的,多任务的环境下执行RM程序
这个特性被称做虚拟8086模式(Virtual -8086 Mode),尽管它并不是一个真正的处理器模式
Virtual-8086模式实际上是一个PM的属性,任何任务都可以使用它
RM提供了Intel 8086处理器的编程环境,另外有一些扩展(比如切换到PM或SMM的能力)
当主机被Power-up或Reset后,处理器处于RM下
SMM是一个对所有Intel处理器都统一的标准体系结构特性
出现于Intel386 SL芯片
这个模式为OS实现平台指定的功能(比如电源管理或系统安全)提供了一种透明的机制
当外部的SMM interrupt pin(SMI#)被激活或者从APIC(Advanced Programming Interrupt Controller)收到一个SMI,处理器将进入SMM
在SMM下,当保存当前正在运行程序的整个上下文(Context)时,处理器切换到一个分离的地址空间
然后SMM指定的代码或许被透明的执行
当从SMM返回时,处理器将回到被系统管理中断之前的状态
由于机器在Power-up或Reset之后,处理器处于RM状态,而对于Intel 80386以及其后的芯片,只有使用PM才能发挥出最大的作用
所以我们就面临着一个从RM切换到PM的问题
本文不讨论SMM,本节的重点集中于在Booting阶段如何从RM切换到PM,这里不会过多的讨论PM的细节,因为《Intel Architecture Software Developer’s Manual Volume 3: System Programming》中有非常详尽和准确的介绍
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。