1:实模式:寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。2:保护模式:寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pro及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。
程序就可以在保护模式下运行了。
但众所周知80286以后在保护模式下实现了对多任务的硬件支持。我 的第一反应是:为什么不在实模式下支持多任务,是不能还是不愿? 思考之后,我的答案是:实模式下能实现多任务(也许我错了:))。 因为多任务的关键是有了描述符,可以给出关于数据段的额外描述,如权
限等,进而在这些附加信息的基础上进行相应的控制,而实模式下缺乏描
述符,但假设我们规定各段的前2个字节或若干字节用于描述段的附加属性,
我觉得和使用描述符这样的机制没有本质区别,如果再附加其他机制...
基于上述考虑,我更倾向于认为任务是独立于保护模式之外的功能。 下面我们来分析一下任务。任务的实质是什么呢?很简单,就是程序嘛!!
所谓任务的切换其实就是程序的切换!!
现在问题明朗了。实模式下程序一个接一个运行,因此程序运行的 “环境”不必保存;保护模式下可能一个程序在运行过程中被暂停,转而执行
下一个程序,我们要做什么?很容易想到保存程序运行的环境就行了(想
想游戏程序的保存进度功能),比如各寄存器的值等。