. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  究竟什么是实模式和保护模式?  [待解决] 回复[ 25次 ]   点击[ 3437次 ]  
feng0007
[帖 主] [ 发表时间:2007-07-22 18:34 ] 
荣誉值:7
信誉值:3
注册日期:2007-07-22 18:17
究竟什么是实模式和保护模式?希望有人能告诉我.
benfeizhuzi
[第22楼] [ 回复时间:2009-12-16 14:59 ] 
荣誉值:0
信誉值:0
注册日期:2009-12-14 08:55
http://zh.wikipedia.org/zh-cn/%E7%9C%9F%E5%AF%A6%E6%A8%A1%E5%BC%8F
保护模式 (Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 相容 CPU 操作模式。保护模式有一些新的特色,设计用来增强 多工 和系统稳定度,像是 内存保护,分页 系统,以及硬件支援的 虚拟内存。大部分的现今 x86 操作系统 都在保护模式下运行,包含 Linux、FreeBSD、以及 微软 Windows 2.0 和之后版本。

另外一种 286 和其之后 CPU 的操作模式是 真实模式,一种向前相容且关闭这些特色的模式。设计用来让新的芯片可以执行旧的软件。依照设计的规格,所有的 x86 CPU 都是在真实模式下开机,来确保传统操作系统的向前相容性。在任何保护模式的特色可用前,他们必须要由某些程式手动地切换到保护模式。在现今的电脑,这种切换通常是由 操作系统 在开机时候必须完成的第一件工作的一个。它也可能当 CPU 在保护模式下运行时,使用 虚拟86模式 来执行设计给真实模式的程式码。

尽管用软件的方式也有某些可能在真实模式的系统下使用多工,但保护模式下内存保护的特色,可以避免有问题的程式破坏其他工作或是 操作系统 核心所拥有的内存。保护模式也有中断正在执行程式的硬件支援,可以把 execution content 交给其他工作,得以实现 先占式多工。

大部分可以使用保护模式的 CPU 也拥有 32 位元暂存器 的特色 (例如 80386 系列和其后任何的芯片),导入了融合保护模式而成为 32 位元处理的概念。80286 芯片虽有支援保护模式,但是仍然只有 16 位元暂存器。Windows 2.0 和之后版本中的保护模式增强称为 "386 增强模式",是因为他们除了保护模式外,还需要 32 位元的暂存器,并且无法在 286 上面执行 (即使 286 支援保护模式)。

即使在 32 位元芯片上已经打开了保护模式,但是 1 MB 以上的内存并无法存取,是由于一种仿照 IBM XT 系统设计特性的 memory wrap-around(内存连续) 的因素。这种限制可以由打开 A20 line 来回避。

在保护模式下,前面 32 个中断都是保留给 CPU 例外处理用。举个例子,中断 0D (十进制 13) 是 一般保护模式错误 而 中断 00 是 除以零。

实模式 (Real mode) 是 Intel 80286 和之后的 x86 兼容 CPU 的操作模式。实模式的特性是一个 20 位的区段存储器地址空间 (意思为只有 1 MB 的存储器可以被寻址),可以直接软件访问 BIOS 例程以及周边硬件,没有任何硬件等级的存储器保护观念或多任务。所有的 80286 系列和 之后的 x86 CPU 都是以实模式下开机;80186 和早期的 CPU 仅仅只有一种操作模式,也就是相当于后来芯片的这种实模式。

286 架构导入 保护模式,允许硬件等级的存储器保护。然而要使用这些新的特色,需要额外先前不需要的软件指令。由于 x86 微处理机主要的设计规格,是能够完全地向前兼容于针对先前所有 x86 芯片所撰写的软件,因此 286 芯片的开机是处于 '实模式' — 也就是关闭新的存储器保护特性的模式,所以可以运行针对旧的微处理器所设计的软件。到现在为止,即使最新的 x86 CPU 一开始在电源打开处于实模式下,也能够运行针对先前任何芯片所撰写的软件。

DOS 操作系统 (MS-DOS, DR-DOS 等等) 都是在实模式下运作。早期的 Microsoft Windows 版本 (主要地只是图形用户界面外壳,而事实上不是操作系统) 也在实模式下运行,直到 Windows 3.x 才能够在实模式或是保护模式下。Windows 3.0 事实上可以在保护模式的两种 "喜好" 下运行 - "标准模式",也就是使用保护模式来运行;而 "386-增强模式",允许使用 32 位寻址,也因此无法在 286 上运行 (尽管都有保护模式,但是 286 只是 16 位芯片;32 位的寄存器在 80386 系列中推出)。Windows 3.1 移除了实模式的支持,也是第一个最少需要 80286 处理器的主流作业环境(不管Windows/286,因为并非主流产品)。几乎所有的现今 x86 操作系统(Linux、Windows 95 和之后、OS/2 等等)都会在激活后将 CPU 切换到保护模式。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved