详解实模式,保护模式,虚拟8086模式

合集下载

内存寻址的三种模式

内存寻址的三种模式

内存寻址的三种模型1. 地址的种类首先明确一下逻辑地址和线性地址这两个概念:1. 逻辑地址2. 线性地址3. 物理地址1.1 逻辑地址:逻辑地址是编译器生成的,我们使用在linux环境下,使用C语言指针时,指针的值就是逻辑地址。

对于每个进程而言,他们都有一样的进程地址空间,类似的逻辑地址,甚至很可能相同。

1.2 线性地址:线性地址是由分段机制将逻辑地址转化而来的,如果没有分段机制作用,那么程序的逻辑地址就是线性地址了。

1.3 物理地址物理地址是CPU在地址总线上发出的电平信号,要得到物理地址,必须要将逻辑地址经过分段,分页等机制转化而来。

2. 三种寻址模型x86体系结构下,使用的较多的内存寻址模型主要有三种:1. 实模式扁平模型real mode flat model2. 实模式分段模型real mode segment model3. 保护模式扁平模型protected mode flat model下面是对这三种模型的描述实模式和保护模式相对,实模式运行于20位地址总线,保护模式则启用了32位地址总线,地址使用的是虚拟地址,引入了描述符表;虽然二者都引入了段这样一个概念,但是实模式的段是64KB固定大小,只有16KB个不同的段,CS,DS等存储的是段的序号(想想为什么?)。

保护模式则引入了GDT和LDT段描述符表的数据结构来定义每个段。

扁平模型和分段模型相对,区别在于程序的线性地址是共享一个地址空间还是需要分成多个段,即为多个程序同时运行在同一个CS,DS的范围内还是每个程序都拥有自己的CS,DS:前者(flat)指令的逻辑地址要形成线性地址,不需要切换CS,DS;后者的逻辑地址,必须要经过段选择子去查找段描述符,切换CS,DS,才能形成线性地址。

3. 实模式扁平模型该模式只有在386及更高的处理器中才能出现!80386的实模式,就是指CPU可用的地址线只有20位,能寻址0~1MB的地址空间。

详解实模式,保护模式,虚拟8086模式

详解实模式,保护模式,虚拟8086模式
详解实模式,保护模式,虚拟8086模式
2014年11月29日 0:59
• 80x86处理器有三种工作模式:实模式,保护模式和虚拟8086模式
• 历史 ○ DOS时代,汇编凭借着特权可以随时访问系统内核,直接操作硬件,对系统安全造成威胁 ○ Windows时代的到来,不仅给我们带来了华丽的界面,更多的是给我们带来了“保护机 制”。将系统内核层层封装,用户仅能通过Windows提供的接口访问内核。即保护模式 ○ 为了兼容以前的MS-DOS程序,虚拟86模式应运而生。虚拟8086模式是以任务形式在保护模式 上执行的, 在80386上可以同时支持由多个真正的80386任务和虚拟8086模式构成的任务 ○ 其实,实模式和虚拟8086模式是为了向下兼容而设置的. 而保护模式是我们的主角, 是我们现
实际上, 80386就是通过在实模式下初始化控制寄存器, GDTR, LDTR, IDTR与TR等管理寄存 器以及页表, 然后再通过加载CR0使其中的保护模式使能位置位而进入保护模式的. 当然, 实模式下不支持硬件上的多任务切换
实模式下的中断处理方式和8086处理器相同, 也用中断向量表来定位中断服务程序地址 中断向量表的结构也和8086处理器一样: 每4个字节组成一个中断向量, 其中包括两个字节
○ 虚拟8086模式是以任务形式在保护模式上执行的, 在80386上可以同时支持由多个真正的 80386任务和虚拟8086模式构成的任务。虚拟8086模式以保护模式为基础, 它的工作方式实际 上是实模式和保护模式的混合
• 实模式
○ 以8086架构进行讲解,8086上一代8088 CPU中的寄存器都是8位的。而8086是16位的,是
显示的视频缓冲区和BIOS的地址空间
• 而在内存低端, 安排了中断向量表和BIOS数据区; 剩下从

简述x86cpu运行的4个级别

简述x86cpu运行的4个级别

简述x86cpu运行的4个级别x86CPU是一种基于Intel架构的CPU,它是目前世界上最广泛使用的CPU之一。

x86 CPU运行时会经过4个不同的级别,这些级别分别是用户态、内核态、超级用户态和虚拟8086模式。

本文将详细介绍这4个级别的含义和作用。

一、用户态用户态是指CPU在执行用户程序时所处的状态。

在用户态下,CPU 只能访问用户程序所占用的内存空间,不能访问操作系统内核的内存空间。

这是为了保护操作系统内核不受用户程序的干扰。

用户程序可以使用CPU提供的一些指令和功能,但是不能直接访问硬件资源,必须通过操作系统提供的系统调用来实现。

在用户态下,CPU的权限较低,只能执行受限制的指令和操作。

二、内核态内核态是指CPU在执行操作系统内核代码时所处的状态。

在内核态下,CPU可以访问系统的所有资源,可以执行所有指令和操作。

操作系统内核可以直接访问硬件资源,控制系统的各种设备和资源。

在内核态下,CPU的权限最高,可以执行任何指令和操作。

操作系统内核通常使用特权级别0来表示内核态。

三、超级用户态超级用户态是指CPU在执行特权级别大于0但小于3的代码时所处的状态。

在超级用户态下,CPU可以访问一些受保护的资源,如I/O 端口和DMA控制器等。

超级用户态通常用于执行一些需要较高权限的操作,如设备驱动程序的编写和调试等。

超级用户态的权限介于用户态和内核态之间,不同的操作系统有不同的实现方式。

四、虚拟8086模式虚拟8086模式是一种特殊的模式,它允许在保护模式下运行16位的MS-DOS应用程序。

在虚拟8086模式下,CPU会将当前的代码段和数据段设置为16位模式,并且可以访问整个1MB的内存空间。

虚拟8086模式可以通过软件模拟来实现,也可以通过硬件支持来实现。

总结以上就是x86 CPU运行的4个级别,它们分别是用户态、内核态、超级用户态和虚拟8086模式。

每个级别都有不同的权限和作用,它们共同构成了x86 CPU的运行机制。

微机原理之保护模式 和虚拟内存

微机原理之保护模式 和虚拟内存

微机原理之保护模式和虚拟内存学了半年的微机原理,对CPU的设计理论即思路有了一定的了解,深刻的体会到了这些最初设计者的高明之处先说说CPU的工作模式一般来说,80x86(80386及其后的各代CPU)可在实模式,保护模式和V86模式三种模式下运转。

实模式就是古老的MS-DOS的运行环境。

Windows 9x只利用了保护模式和V86模式。

在保护模式下程序可以利用更多的内存(4GB),而运行在实模式下的16位程序最多只能取1MB的内存(看出差别了吧,O(∩_∩)O)。

如果你有一台128MB内存的机器运行在实模式下,那么只能利用1MB内存,其余的全部浪费了。

在这种情况下,你的386/486/586/PII/PIII只能相当于一个跑的快的8086。

v86则类似于实模式,可以调用BIOS, 但他能否调DOS功能,要看操作系统有没有模拟DOS. 比如说,NT里面16位程序可以正常使用DOS功能,因为NT提供了DOS模拟。

可Linux里面16位程序只能用BIOS,没有DOS给他用。

理论上,在保护模式下,一个程序可以寻址4096(4GB)的内存。

这就是说,只需要把程序编译成32为的可执行程序(当然要借助32为编译器),你就可以在程序中充分利用内存了。

从硬件结构上说,386由三个寄存器CR0,CR1,CR2控制着CPU的运转。

比如说,CR0的第0位就是用来判断当前CPU的工作模式还是实模式。

我们知道8086/8088中有8个通用寄存器AX 、BX、CX、DX、SI、DI、SP、BP这些寄存器都是16位的;在80386中这些寄存器都被扩展到了32为,即EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP,段寄存器增加了两个FS和GS; 如果CPU运转在实模式下,只能利用这些32为寄存器的前(低)16位,而后(高)16位就浪费了。

段的概念是理解保护模式的关键所在。

在实模式下,段寄存器中存放16位的段地址,这时段地址是参与寻址的;把段地址左移4位,加上偏移地址,就是20为的物理地址(嘿嘿,我们计算时就是把段地址加上个0,如CS:IP=1030:0010 则计算方法就是1030H--->10300H,加上偏移地址0010H,结果就是10310H就是20位物理地址)。

(07)80486的三种工作方式及转换2.2.3

(07)80486的三种工作方式及转换2.2.3
电气工程学院
2.2.3 80486的三种工作方式及转换
三种工作方式:
1.实地址方式 Real Address Mode 2.保护虚地址方式 Protected Virtual Mode 也叫保护方式或本性方式 3.虚拟8086方式 Virtual 8086 Mode(V86)
386,486均有这三种方式,何以要采用三种工作方式?
第4页
电气工程学院
2)实地址方式下,各个段的特权都是0(最高级); 在V86下,都是3级(最低级)。
三种方式的相互转换
实地址方式
复位 信号
保护方式
LMSW指令,修改CR0的PE 复位信号或修改CR0
Real
Protected Virtual
IRETD指令 复位信号 或任务转换
中断
Virtual8086
物理地址=描述符提供的段基址+有效地址(偏移地址)
段寄存器提供选择符——寻找描述符的索引值
第3页
电气工程学院
4)提供保护: (1)对存储器的保护,它要求通过描述符访问存储器 (2)给每一个任务分配不同的虚拟空间,使任务之间完全隔离, 实现任务之间的保护。 (3)任务内的保护机制,保护操作系统存储段及其专用处理寄存器 不被应用程序所破坏
3.虚拟8086方式
在保护方式下能够与8086兼容的一种方式 一种新的工作方式。它支持存储器管理,保护及多任务环 境中执行8086程序。CPU与保护虚拟地址方式下的工作原理相 同,但程序中指定的逻辑地址按8086方式解释。 与实地址的区别: 1)实地址是整个CPU的工作方式,CPU只执行8086程序; 而V86还可以执行286、386/486程序规定的其它任务。
2)通过修改控制寄存器CR0中的控制位(PE)使CPU从 实地址方式 转换到保护方式(或反方向操作)

什么叫实模式,什么叫保护模式

什么叫实模式,什么叫保护模式

什么叫实模式,什么叫保护模式?概念……没背过特点……DOS就是实模式的,现在的Winows、Unix之类东西都是保护模式的。

实模式下只能访问那可怜的1M内存,要想突破这个限制,麻烦得很,你还记得DOS下那一堆什么XMS (扩充内存)、EMS(扩展内存)吧?本来是连续的64M内存,在DOS下访问,还得调用什么中断,好麻烦。

Watcom C++之所以当时有些名气就是占了这个便宜,说集成开发环境,那和BC是没法比,但就因为它提供了DOS4GW支持,可以很方便的是你的程序在DOS访问4G 内存,写32位的程序。

至于保护模式,特性挺多,如线性地址、虚拟内存、权限保护之类的东西都是CPU提供的功能,为开发现代操作系统提供了很多便利。

x86CPU在初始化的时候都是先进入实模式,然后操作系统再切换到保护模式。

详情你找本书看看吧。

有一本《386保护模式编程》你可以看看,写得挺多。

dos下内存是很简单的,指针指向的几乎就是实际的物理地址。

实模式的指针是16bit的,就是直接访问的内存是640k,640k~1M之间的内存是通过中断把页切换到640k里读写完之后又Move到640k以外的。

Dos4GW又提供了别的中断来访问1M~8M以外的内存。

你理解在操作系统限制的时候做这些突破是多么“技巧”的一个年代吧。

其实386已经支持32位指针了,这时又引入了GDT,LDT等概念。

怎么说呢....靠,这样吧,比如你有一大衣柜(GDT),有无数的小抽屉(LDT)。

这个抽屉是你的,那个是你MM的,你MM翻你的抽屉就会发现套套,你翻你MM的抽屉会发现情书...所以要保护!《386保护模式编程》书我看问题的追溯到8086/8088在80866/88时代,地址线只有20条,只能寻址到1M8086采用段式存储管理,每个段最多寻址64k ,原因:指针是16bit的到80286是地址线达到32条,可以寻址到4G的虚拟空间此时提出了保护模式可采用分页式存储管理,以寻址到4G的空间现在的操作系统都是基于80286的保护模式区别与8086提供的实地址方式简介(转)这篇文章将会着重介绍内存寻址的不同方法。

80386学习(一)80386CPU介绍

80386学习(一)80386CPU介绍

80386学习(⼀)80386CPU介绍⼀.80386CPU介绍 Inter80386CPU是Inter公司于1985年推出的第⼀款32位80x86系列的微处理器。

80386的数据总线是32位的,其地址总线也是32位,因⽽最⼤可寻址4GB的存储空间。

80386作为x86系列CPU的⼀员,保持着对更早⽣产的x86CPU的向前兼容。

80386在当时主要为⽀持⾼性能的应⽤领域和多⽤户、多任务操作系统⽽设计,提供了硬件级的特权级保护、多任务切换、内存分页等功能。

80386有三种运⾏模式:实模式、保护模式和虚拟8086模式。

在实模式下,80386和8086的⾏为保持⼀致,只能访问20位(1M)的地址空间,内部实际32位的寄存器也只有低16位有效。

实模式主要是为了兼容运⾏在8086CPU上的程序,所以80386加电后,默认就运⾏在实模式下。

要想充分发挥80386的对于多任务的⽀持功能,需要使80386进⼊保护模式。

保护模式是80286以及后续的x86CPU都具有的⼀种⼯作模式。

保护模式下的80386内存寻址范围达到了硬件设计的上限:2^32byte,即4GB。

保护模式提供了诸如内存保护、内存分页机制以及硬件虚拟存储管理等功能,为多⽤户。

多任务的⾼效、可靠、安全的操作系统实现提供了良好的⽀持。

因此,主流的现代操作系统例如Linux、Windows(Windows95及以后)其内核均运⾏在x86的保护模式之上。

虚拟8086模式的⼯作模式介于实模式和保护模式之间,虚拟8086⽀持多任务、内存分页等功能。

但运⾏的每⼀个独⽴任务均处于实模式之下。

虚拟8086这⼀模式由于其中庸性,应⽤范围相对较⼩。

⼆.80386对于8086的主要改进 80386能够兼容的运⾏之前在8086、80286CPU上运⾏的程序,但80386⽐起16位的8086CPU⽆论是性能还是功能上都有质的提升。

性能⽅⾯的主要改进:更宽的数据总线和地址总线 扩展到32位的地址总线使得80386能够访问更⼤的地址空间,同时32位的数据总线⽐起8086的16位也增加了数据的传输速度。

CPU 主频 X86的实模式,保护模式,虚拟8086模式Microsoft Office Word 97 - 2003 文档

CPU 主频  X86的实模式,保护模式,虚拟8086模式Microsoft Office Word 97 - 2003 文档

CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。

通常所说的某某CPU是多少兆赫的,而这个多少兆赫就是“CPU的主频”。

很多人认为CPU的主频就是其运行速度,其实不然。

CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。

主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等)。

由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。

比如AMD公司的AthlonXP系列CPU大多都能以较低的主频,达到英特尔公司的Pentium 4系列CPU较高主频的CPU性能,所以AthlonXP系列CPU才以PR值的方式来命名。

因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。

CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的。

举个例子来说,假设某个CPU在一个时钟周期内执行一条运算指令,那么当CPU运行在100MHz 主频时,将比它运行在50MHz主频时速度快一倍。

因为100MHz的时钟周期比50MHz的时钟周期占用时间减少了一半,也就是工作在100MHz主频的CPU执行一条运算指令所需时间仅为10ns比工作在50MHz主频时的20ns缩短了一半,自然运算速度也就快了一倍。

只不过电脑的整体运行速度不仅取决于CPU运算速度,还与其它各分系统的运行情况有关,只有在提高主频的同时,各分系统运行速度和各分系统之间的数据传输速度都能得到提高后,电脑整体的运行速度才能真正得到提高。

提高CPU工作主频主要受到生产工艺的限制。

由于CPU是在半导体硅片上制造的,在硅片上的元件之间需要导线进行联接,由于在高频状态下要求导线越细越短越好,这样才能减小导线分布电容等杂散干扰以保证CPU运算正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序运行的主要软件环境是操作系统。操作系统为程序运行提供基本的服务,如,程序 的装入、结束,内存的分配,文件管理等。以DOS操作系统为例,它也以中断处理程序的形 式提供这些服务,称为"DOS中断", 应用程序也用"INT n"指令调用这些服务。 MS_DOS的 DOS中断是由IO.SYS、MSDOS.SYS两个文件提供的中断处理程序。(PC_DOS: 、)。 PC系列机有256种中断类型,8086CPU使用其中5个(0号除数为0中断、1号单步中 断、2号NMI中断、3号断点中断、4号溢出中断),80286及以上系统中,通过中断控制器 8259使用的硬件中断为16个。其余中断类型为BIOS中断和DOS中断,它们称为"软件中 断"。另外,设备制造商提供的设备控制程序(称为驱动程序Driver)可能替换BIOS中断和DOS 中断。
○ 其它 在实模式下, 80386处理器不能对内存进行分页管理, 所以指令寻址的地址就是内存中实际 的物理地址, 在实模式下, 所有的段都是可以读,写和执行的
分区 知识点 的第 6 页
的物理地址, 在实模式下, 所有的段都是可以读,写和执行的 实模式下80386不支持优先级, 所有的指令相当于工作在特权级(优先级0), 所以它可以执行 所有的特权指令, 包括读写控制寄存CR0等
的段地址和两个字节的偏移地址
从编程的角度看, 除了可以访问80386新增的一些寄存器外, 实模式的80386处理器和8086 有什么进步呢? □ 其实最大的好处是可以使用80386的32位寄存器, 用32位的寄存器进行编程可以使计 算程序更加简捷, 加快了执行速度 比如在8086时代用16位寄存器来完成32位的乘法和除法时, 要进行的步骤实在是 太多了, 现在用32位寄存器一条指令就可以完成 □ 80386中增加了两个辅助段寄存器FS和GS,在实模式下也可以使用, 这样, 同时可以访 问的段达到了6个而不必考虑重新装入的问题; 最后, 很多80386的新增指令也使一些 原来不很方便的操作得以简化 • 保护模式 ○ 实模式下汇编指令能够任意直接访问系统内核,直接操作硬件,存在巨大安全隐患。80386处 理器中引入了保护模式和虚拟86模式。在保护模式下,所有功能可用,包括:4GB线性地 址,内存分页机制,多任务,优先级机制等。 • 寄存器
矛盾:8086CPU如何用内部的16位数据转换成外部20位的地址?
解决方法:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位物理地址
分区 知识点 的第 3 页
解决方法:8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位物理地址
段的概念: 内存并没有在物理上分段,段的划分来自于CPU,由于8086CPU用“段地址*16 + 偏移 地址”=物理地址 的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理 内存。
代系统实际上的工作模式 • 工作模式切换
○ 进入实模式:处理器被复位或者加电的时候以实模式启动,这时候,处理器中各寄存器以实 模式的初始化值工作 ○ 实模式 --> 保护模式:从实模式切换到保护模式是通过修改控制寄存器CR0的控制位PE(位0) 来实现的. 在这之前还需要建立保护模式必需的一些数据表, 如全局描述符表GDT和中断描述 符表IDT等。实际上, 80386就是通过在实模式下初始化控制寄存器, GDTR, LDTR, IDTR与TR 等管理寄存器以及页表, 然后再通过加载CR0使其中的保护模式使能位置位而进入保护模式 的. 当然, 实模式下不支持硬件上的多任务切换 ○ 保护模式 --> 实模式:DOS操作系统运行在实模式下, 而Windows操作系统运行于保护模式 下(所以, 在Windows操作系统下不可能运行在实模式下, 必须重开机, 重开机时有实模式到保 护模式的过滤, 在实模式时, 通过修改MBR区块中的某一索引信息指示其加载DOS操作系统)
划时代的产物,其架构与现代CPU的架构基本趋于一致 ○ 8086CPU结构:
分区 知识点 的第 1 页
8086CPU结构:
○ 16位CPU: 以下三个方面的特点决定了CPU是多少位
运算器一次最多可以处理16位的数据。
寄存器的最大宽度为16位。
寄存器和运算器之间的通路是16位。
○ 寄存器:
一个典型的CPU由运算器、控制器和寄存器组成。8086CPU有14个寄存器,名称分别为 AX, BX, CX, DX : 通常用于存放一般性数据,称为通用寄存器。为保证兼容性,都可分为两个独立的 8位Reg使用 SI, DI, SP, BP, :8个通用寄存器,一般不会随
实际上, 80386就是通过在实模式下初始化控制寄存器, GDTR, LDTR, IDTR与TR等管理寄存 器以及页表, 然后再通过加载CR0使其中的保护模式使能位置位而进入保护模式的. 当然, 实模式下不支持硬件上的多任务切换
实模式下的中断处理方式和8086处理器相同, 也用中断向量表来定位中断服务程序地址 中断向量表的结构也和8086处理器一样: 每4个字节组成一个中断向量, 其中包括两个字节
分区 知识点 的第 5 页
中断。
中断与异常
□ 中断
中断指当程序执行过程中有更重要的事情需要实时处理(如串口中有数据到达, 不及时处理数据会丢失, 串行控制器就提交一个中断信号给处理器要求处理), 硬 件通过中断控制器通知处理器
接到命令后, 处理器暂时挂起当前运行的程序, 转移到中断处理程序中 当中断处理程序处理完成后, 通过iret指令回到原先被打断的程序中继续执行
CPU换代而改变。否则系统需重写
CS, SS, DS, ES :4个段寄存器 IP,FR 段寄存器 :2个控制寄存器
分区 知识点 的第 2 页
标志寄存器
○ 寻址
8086有20位地址总线,可传送20位地址,寻址能力为1M。
8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。
最后剩下600KB左右的内存才是应用程序真正可用的
• 如果系统中有内存驻留程序存在, 那么应用程序还要和这
分享这段内存空间
任何程序的运行均离不开一定的硬件环境和软件环境。基本硬件环境包括CPU、存储 器、I/O设备(键盘、磁盘、打印机、显示卡等),一个简单的I/O设备使用要求,需要一系列 IN/OUT等控制指令,可以把一些基本使用要求编写为子程序供调用。事实上,BIOS中,以 中断处理程序的形式提供了微机中基本I/O设备的控制程序,称为"BIOS中断",应用程序可 以用"INT n"指令调用这些程序。
80386共提供7种类型的32位寄存器,如下:
a. 通用寄存器(EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI)
b. 段寄存器(CS、SS、DS、ES、FS、GS)
c. 指令指针寄存器和标志寄存器(EIP、EFLAGS) d. 系统描述符表寄存器(GDTR、IDTR、LDTR、TR) e. 控制寄存器(CR0、CR1、CR2、CR3、CR4) f. 调试寄存器(DR0、DR1、DR2、DR3、DR4、DR5、DR6、DR7)
在编程时可以根据需要,将若干连续的内存单元看作一个段,用段地址*16定位段的起 始地址(基地址),用偏移地址定位段中的内存单元。 需要注意两点:
关于段地址:段地址*16必然是16的倍数,所以段的起始地址也一定是16的倍数。
偏移地址为16位,16位地址的寻址能力为64K,所以一个段的长度最大为64K。
□ 异常
异常指指令执行中发生不可忽略的错误时(如遇到无效的指令编码, 除数为零等), 处理器和中断处理相同的操作方法挂起当前运行的程序转移到异常处理程序中 异常处理程序决定在修正错误后是否回到原来的地方继续执行
□ 注意: 中断和异常的处理方式是相同的
实模式下中断或异常处理 □ 实模式下的中断和异常服务程序地址存放在中断向量表中
○ 虚拟8086模式是以任务形式在保护模式上执行的, 在80386上可以同时支持由多个真正的 80386任务和虚拟8086模式构成的任务。虚拟8086模式以保护模式为基础, 它的工作方式实际 上是实模式和保护模式的混合
• 实模式
○ 以8086架构进行讲解,8086上一代8088 CPU中的寄存器都是8位的。而8086是16位的,是
g. 测试寄存器(TR6、TR7)
其中后三类寄存器是80386以后的CPU才有的,以前的CPU完全没有。
下图是前四类寄存器的大致示意图:
分区 知识点 的第 7 页
下图是前四类寄存器的大致示意图:
○ 通用寄存器
在80386CPU内部有8个32位的通用寄存器,它们用于暂时存放频繁使用的中间结果。它们可 以通过软件进行读、写或修改。所有的通用寄存器均可以用作算术运算和逻辑运算中的源操 作数,目的操作数。使用内部通用寄存器操作数,可以加速处理器的运行速度
详解实模式,保护模式,虚拟8086模式
2014年11月29日 0:59
• 80x86处理器有三种工作模式:实模式,保护模式和虚拟8086模式
• 历史 ○ DOS时代,汇编凭借着特权可以随时访问系统内核,直接操作硬件,对系统安全造成威胁 ○ Windows时代的到来,不仅给我们带来了华丽的界面,更多的是给我们带来了“保护机 制”。将系统内核层层封装,用户仅能通过Windows提供的接口访问内核。即保护模式 ○ 为了兼容以前的MS-DOS程序,虚拟86模式应运而生。虚拟8086模式是以任务形式在保护模式 上执行的, 在80386上可以同时支持由多个真正的80386任务和虚拟8086模式构成的任务 ○ 其实,实模式和虚拟8086模式是为了向下兼容而设置的. 而保护模式是我们的主角, 是我们现
显示的视频缓冲区和BIOS的地址空间
• 而在内存低端, 安排了中断向量表和BIOS数据区; 剩下从
相关文档
最新文档