. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  究竟什么是实模式和保护模式?  [待解决] 回复[ 25次 ]   点击[ 3434次 ]  
feng0007
[帖 主]   [ 发表时间:2007-07-22 18:34 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:3
注册日期:2007-07-22 18:17
究竟什么是实模式和保护模式?希望有人能告诉我.
xiaochong
[第1楼]   [ 回复时间:2007-07-23 08:47 ]   [引用]   [回复]   [ top ] 
荣誉值:45
信誉值:0
注册日期:2007-05-05 09:01
实 模 式:工作方式相当于一个8086。
保护模式:提供支持多任务环境的工作方式,建立保护机制。
任何一台使用Intel系列CPU的PC机只要一开机,CPU就工作在实模式下。如果你的机器装的是Dos,那么DOS加载后CPU仍以实模式工作。如果你的机器装的是Windows,那么Windos加载后,将由Windows将CPU切换到保护模式下工作,因为Windows是多任务系统,它必须在保护模式下运行。(摘自 附注)
wuxinhua
[第2楼]   [ 回复时间:2007-07-28 07:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2007-07-28 06:55
我是这样理解的,


实模式就是你叫CPU干什么,它就干什么,只要符合指令要求

保护模式是你叫CPU干嘛,要经过windows系统,很多命令不让执行


不知是不是这样,讨教
xiaochong
[第3楼]   [ 回复时间:2007-07-28 09:51 ]   [引用]   [回复]   [ top ] 
荣誉值:45
信誉值:0
注册日期:2007-05-05 09:01
我是这样理解的,

实模式就是你叫CPU干什么,它就干什么,只要符合指令要求

保护模式是你叫CPU干嘛,要经过windows系统,很多命令不让执行

不知是不是这样,讨教
------------------
回复:有一定的道理哦~,
但保护模式并不是必须要经过windows系统,保护模式是cup的一种工作方式,只要你将cpu设置在保护模式下它就工作做在保护模式下,不需要有操作系统的介入,操作系统只是工作在保护模式下的一个软件而已。还有并不是只有windows系统工作在保护模式下,还有Unix 、Linux 等。
当然如果你工作在windows下,windows会阻止某些命令的使用,当你使用时会给出相应的错误提示。
wuxinhua
[第4楼]   [ 回复时间:2007-07-28 10:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2007-07-28 06:55
哦,原来这样啊
super
[第5楼]   [ 回复时间:2007-07-28 13:32 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2007-07-28 13:12
保护模式 是 比实模式更安全,功能大的系统状态
linuxembedded
[第6楼]   [ 回复时间:2007-10-10 10:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2007-10-08 10:36
mark
cook702
[第7楼]   [ 回复时间:2007-10-10 17:21 ]   [引用]   [回复]   [ top ] 
荣誉值:40
信誉值:2
注册日期:2007-06-26 11:53
我是这样理解的,

实模式就是你叫CPU干什么,它就干什么,只要符合指令要求

保护模式是你叫CPU干嘛,要经过windows系统,很多命令不让执行

不知是不是这样,讨教
------------------
回复:有一定的道理哦~,
但保护模式并不是必须要经过windows系统,保护模式是cup的一种工作方式,只要你将cpu设置在保护模式下它就工作做在保护模式下,不需要有操作系统的介入,操作系统只是工作在保护模式下的一个软件而已。还有并不是只有windows系统工作在保护模式下,还有Unix 、Linux 等。
当然如果你工作在windows下,windows会阻止某些命令的使用,当你使用时会给出相应的错误提示。
------------------
回复:本人认为,是操作系统和cpu共同构造了保护模式这个运行环境。
cook702
[第8楼]   [ 回复时间:2007-10-10 18:32 ]   [引用]   [回复]   [ top ] 
荣誉值:40
信誉值:2
注册日期:2007-06-26 11:53
时间所限,望高人赐教。
Wednesday
[第9楼]   [ 回复时间:2007-10-15 10:45 ]   [引用]   [回复]   [ top ] 
荣誉值:43
信誉值:3
注册日期:2007-07-05 19:53
水平所限,望高人赐教。
sunshine
[第10楼]   [ 回复时间:2007-10-16 09:33 ]   [引用]   [回复]   [ top ] 
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10
实模式和保护模式是对于cpu来说的
80386和后来的cpu,有3种工作模式:实模式,保护模式,和虚拟8086模式.
1,实模式下的cpu相当于一个高性能的8086cpu,使用的指令,寻址方式,寻址空间和8086相同.
2,保护模式下cpu,一些基本的机制和指令和8086相同,但是它的寻址方式,空间,等等都不同.这是为了能更好的保护多个程序同时运行而做的.
3,虚拟8086模式,实际可以算是保护模式下个一个特殊处理.为了在保护模式下方便使用8086程序设计的.
关于具体的细节,可以多看看网上介绍
虽然模式很多,但是汇编的一些基本原理,都是适用的.所以我们为什么还在学习8086汇编.
fishboy
[第11楼]   [ 回复时间:2007-10-16 09:44 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
可以看看dcg的博客,那里有一篇关于实模式和保护模式的文章。
Wednesday
[第12楼]   [ 回复时间:2007-10-16 11:42 ]   [引用]   [回复]   [ top ] 
荣誉值:43
信誉值:3
注册日期:2007-07-05 19:53
恩 ,看了。清晰。
putersham
[第13楼]   [ 回复时间:2007-10-31 16:11 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:0
注册日期:2007-10-31 15:17
保护模式就是N个被保护的独立的实模式
每个不同的任务就运行在1个独立的受保护的实模式里
这样不管哪个任务出错了也不会耽误别的任务撒
我是这样理解的^^
bloom
[第14楼]   [ 回复时间:2008-01-05 19:06 ]   [引用]   [回复]   [ top ] 
荣誉值:129
信誉值:0
注册日期:2007-07-12 18:33
11楼的说的就是这篇文章吧,
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=1113&kindId=1161&postId=1658&readSg=1
lonelyboy
[第15楼]   [ 回复时间:2008-06-22 20:01 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12
收藏先
caihong
[第16楼]   [ 回复时间:2008-07-18 13:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2008-06-05 12:28
满好的.
ai_cr
[第17楼]   [ 回复时间:2008-09-09 15:58 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:2
注册日期:2008-09-04 17:29
将由Windows将CPU切换到保护模式下工作
------------------
回复:我头一次听说实模式和保护模式是CPU的工作模式,也头一次知道windows这么厉害.
敢问,这里有人写过病毒没?
ddspace
[第18楼]   [ 回复时间:2009-03-22 11:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2009-03-14 15:44
受益~!~~~~~~~~·······
lmmilebuddha
[第19楼]   [ 回复时间:2009-05-18 18:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-13 18:35
dell1318
[第20楼]   [ 回复时间:2009-07-27 11:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-07-22 10:44
谢各位大虾!
zhengxinyi
[第21楼]   [ 回复时间:2009-09-21 17:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-21 16:51
前几天看到了有人发了一篇帖子,提到训练营的教程有很多错误,而且又涉嫌抄袭,那位网友应该是为了引起汇编网的注意吧,发了很多帖子,不过全都被管理员删掉了。
训练营的教程到底是怎么回事呢?
据我所知,确实有不少人对此有意见了,汇编网的回答又让人不满意。
我也发很多帖子,看看会怎么样
benfeizhuzi
[第22楼]   [ 回复时间:2009-12-16 14:59 ]   [引用]   [回复]   [ top ] 
荣誉值: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 切换到保护模式。
regex
[第23楼]   [ 回复时间:2009-12-24 21:59 ]   [引用]   [回复]   [ top ] 
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51
实模式寻址无法超过1MB, 保护模式寻址大于1MB,今次而已。
neicole
[第24楼]   [ 回复时间:2011-10-08 18:17 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-08 17:53
清晰,明白。
haiqi1025
[第25楼]   [ 回复时间:2011-11-03 10:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-11-05 15:02
大家都厉害哦! 狂顶
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved