Intel 系列微处理器的3种工作模式

微机中常用的 Intel 系列微处理器的主要发展过程是: 8080,8086/8088,80186,80286,80386,80486,Pentium,Pentium Il,PentiumIIl,Pentium4。

8086/8088 是一个重要的阶段,8086 和 8088 是略有区别的两个功能相同的 CPU。8088 被 IBM 用在了它所生产的第一台微机上,该微机的结构事实上成为以后微机的基本结构。

80386 是第二个重要的型号,随着微机应用及性能的发展,在微机上构造可靠的多任务操作系统的问题日益突出。人们希望(或许是一种潜在的希望,一旦被挖掘出来,便形成了一个最基本的需求)自己的 PC 机能够稳定地同时运行多个程序,同时处理多项工作.或将PC 机用作主机服务器,运行UNIX 那样的多用户系统。

8086/8088 不具备实现一个完善的多任务操作系统的功能。为此 Inte1 开发了 8028680286 具备了对多任务系统的支持。但对 8086/8088 的兼容却做得不好。这妨碍了用户对原 8086 机上的程序的使用。IBM 最早基于 80286 开发了多任务系统 OS/2,结果犯了一个战略错误。

随后 Intel 又开发了 80386 微处理器,这是一个划时代的产品。它可以在以下 3 个模式下工作。

(1)实模式:工作方式相当于一个 8086。
(2) 保护模式:提供支持多任务环境的工作方式,建立保护机制(这与 VAX 等小型机类似)。
(3)虚拟 8086 模式:可从保护模式切换至其中的一种 8086 工作方式。这种方式的提供使用户可以方便地在保护模式下运行一个或多个原 8086 程序。

以后的各代微处理器都提供了上述 3 种工作模式。

你也许会说:“喂,先生,你说的太抽象了,这3 种模式我如何感知?“

其实 CPU的这3 种模式只要用过 PC 机的人都经历过。任何一台使用 Intel 系列 CPU的 PC 机只要一开机,CPU 就工作在实模式下。如果你的机器装的是 DOS,那么在 DOS加载后 CPU仍以实模式工作。如果你的机器装的是 Windows,那么 Windows 加载后,将由 Windows 将 CPU 切换到保护模式下工作,因为 Windows 是多任务系统,它必须在保护模式下运行。如果你在 Windows 中运行一个 DOS 下的程序,那么 Windows 将 CPU 切换到虚拟 8086 模式下运行该程序。或者是这样,你点击开始菜单在程序项中进入 MS-DOS方式,这时,Windows 也将 CPU 切换到虚拟 8086 模式下运行。

可以从保护模式直接进入能运行原 8086 程序的虚拟 8086 模式是很有意义的,这为用户提供了一种机制,可以在现有的多任务系统中方便地运行原 8086 系统中的程序。这点,在 Windows 中我们都可以体会到,你在 Windows 中想运行一个原 DOS 中的程序,只用鼠标点击一下它的图标即可。80286CPU 的缺陷在于,它只提供了实模式和保护模式,但没有提供虚拟 8086.模式。这使基于 80286 构造的多任务系统,不能方便地运行原8086 系统中的程序。如果运行原 8086 系统中的程序,需要重新启动计算机,使 CPU 工作在实模式下才行。这意味着什么?意味着将给用户造成很大的不方便。假设你使用的是基于 80286 构造的 Windows 系统,就会发生这样的情况: 你正在用 Word 写一篇论文,其中用到了一些从前的数据,你必须运行原 DOS 下的 DBASE 系统来看一下这些数据。这时你只能停下现有的工作,重新启动计算机,进入实模式工作。你看完了数据,继续写论文,可过了一会儿,你发现又有些数据需要参考,于是你又得停下现有的工作,重新启动计算机··…

幸运的是,我们用的 Windows 是基于 80386 的,我们可以以这样轻松的方式工作开两个窗口,一个是工作于保护模式的 Word,一个是工作于虚拟 8086 模式的 DBASE我们可以方便地在两个窗口中切换,只要用鼠标点一下就行。

前面讲过,我们在 8086PC 机的基础上学习汇编语言。但现在知道,我们实际的编程环境是当前 CPU 的实模式。当然,有些程序也可以在虚拟 8086 模式下运行。

如果你仔细阅读了上面的内容,或已具备相关的知识,你会发现,从 80386 到当前的CPU,提供 8086 实模式的目的是为了兼容。现今 CPU 的真正有效力的工作模式是支持多任务操作系统的保护模式。这也许会引发你的一个疑问:“为什么我们不在保护模式下学习汇编语言?”

类似的问题很多,我们都希望学习更新的东西,但学习的过程是客观的。任何合理的学习过程(尽可能排除走弯路、盲目探索、不成系统)都是一个循序渐进的过程。我们必须先通过一个易于全面把握的事物,来学习和探索一般的规律和方法。信息技术是一个发展非常快、日新月异的技术,新的东西不断出现,使人在学习的时候往往无所适从。在你的身边不断有这样的故事出现:COOL 先生用了·3 天(或更短)的时间就学会了某某语言,并开始用它编写软件。在这个故事的感召下,一个初学者也去尝试,但完全是另外一种结果。COOL 先生的快速学习只是露出水面的冰山一角,深藏水下的是他的较为系统的相关基础知识和相关的技术。在开始的时候学习保护模式下的编程,是不现实的,保护模式下所涉及的东西对初学者来说太复杂。你必须知道很多知识后,才能开始编写第一个小程序。相比之下 8086 就合适得多。

猜你喜欢

转载自blog.csdn.net/lcy1619260/article/details/132716079