anyuan2002.com - vwin网

查找: 您的方位主页 > 电脑频道 > 编程代码 > 阅览资讯:x86架构的根本运转环境

x86架构的根本运转环境

2019-04-01 04:45:53 来历:www.anyuan2002.com 【

从CPU的视点来看,程序不过是一组指令并按编译时生成的次序履行。履行的进程中会从内存中取值并在寄存器中操作,以得到希望的成果。此外还有一些特别的寄存器对CPU的状况和行为进行操控。下面介绍一下x86架构的根本运转环境。

三种根本形式

实际上x86有4种运转形式:实形式、维护形式、SMM形式和虚拟8086形式。除SMM形式外,其他三种形式常见于各种教科书,对了解x86CPU作业极为重要,在此也对他们进行扼要介绍。

实形式:当CPU加电并阅历开始的混沌状况后首先进入的便是实形式,它是前期Intel8086 处理器的作业形式。在该形式下,逻辑地址转化后即为物理地址,CPU能够拜访1MB的物理地址空间(1MB+64KB)。操作系统或许BIOS一般在该形式下预备必要的数据结构和初始化要害的寄存器,然后切入维护形式。

维护形式:操作系统运转最常用的形式。在该形式下,CPU的一切功用简直都能得到运用,能够拜访架构答应的一切物理地址空间。本章的解说,如无特别阐明,都是根据维护形式进行的。

虚拟8086形式:为了使前期的8086程序能在维护形式下运转,x86供给了虚拟8086形式。该形式能够让CPU在维护形式下为8086程序虚拟实形式的运转环境,使这些程序在履行时无须真实的从维护形式切换到实形式。

根本寄存器组

寄存器是软件操作CPU的最根本部件,X86架构的寄存器能够大略的分为以下几类。

1通用寄存器:共有8个32位的寄存器,例如常见的EAX、EDX等,用来保存程序运转时的暂时变量、栈指针等数据。

2、内存办理寄存器:包含段寄存器和描述符表寄存器。

3、EFLAGS寄存器:32位的寄存器,用来保存程序运转中的一些标志信息,如溢出、敞开中止与否、分支跳转等信息。

4、EIP寄存器:32位寄存器,用来保存指向当时指令的地址。一般教科书中称该寄存器为PC指针。

5、浮点运算寄存器:关于浮点运算,x86会经过一个浮点运算协处理器来处理。协处理器中包含8个80位的浮点数据寄存器,1个16位的操控寄存器,1个16位的状况寄存器,1个16位的标志寄存器,1个11位的指令码寄存器,1个48位的浮点指令指针寄存器和1个48位的浮点数据寄存器。这些浮点运算寄存器为浮点运算供给一个根本的运转环境。

6、操控寄存器:x86供给了5个操控寄存器,别离是CR0~CR4寄存器。这些操控寄存器决议了CPU运转的形式和特征等。

7、其他寄存器:x86还供给了其他一些寄存器,包含了8个调试寄存器DR0~DR7、内存区域类型寄存器、机器查看寄存器以及功能监控寄存器。

权限操控

权限操控是指CPU对资源进行分类,使不同权限的程序只能拜访自身权限所答应拜访的资源。操作系统的用户态和内核态之分便是最常见的权限操控,内核态程序具有最高权限,用户态程序具有最低权限。x86架构供给两种权限操控机制-----段维护和页维护。这两种机制对应内存办理中的段机制和分页机制,下面别离进行介绍。

1、段维护

段维护引进了如下三种特点对权限操控进行操控。

(1)当时权限等级CPL:CPL表明当时运转的代码权限。经过CS的0、1位记载代码的CPL值,CPL能够有0~3共4个等级,这便是常说的ring等级。其间,Ring0对应CPL=0,具有最高权限,操作系统中的内核运转在该权限;Ring3对应CPL=3,用户程序运转在Ring3。CPL值越高权限越低。

描述符权限等级DPL:DPL表明段和门所具有的权限。它表明代码拜访某个段或许经过某个门时所需求的最低权限。例如某个数据段描述符有DPL=2,则只要CPL=0、1、2的代码能够拜访该数据段,CPL=3的不能拜访。

所要求权限等级RPL:RPL比较特别,它存在于段寄存器的0~1位,用于程序在拜访段时刻时添加一级查看。其用处见后边的比如。

程序拜访一个段,要经过段寄存器得到段描述符,这样会发生2次查看,参加查看的3个特点别离是:程序自身的CPL、段寄存器的RPL、段描述符的DPL、CPL、DPL、RPL组合起来的状况有很多种,但只要当CPL<=DPL且RPL<=DPL时,拜访才被答应,其他状况均被回绝。一般能够把RPL设置成0来简化查看,此刻,满意CPL<= DPL拜访即被答应。

页维护

页维护的思维比段维护简略,它经过再页目录项、页表项中引进一个User/Supervisor位,将页面或整个页目录项分红User和Supervisor两个特权级。该位为0时表明Supervisor形式,对应CPL=0、1、2的状况;为1表明User形式,对应CPL=3的状况。当程序运转在CPL=0、1、2也便是SuperVisor形式下时,能够拜访一切页面;运转在CPL=3下的程序处于User形式只能拜访User页面。

段维护和页维护是能够混用的从面带来了更为灵敏的维护机制。

 

 

 

 

 

 

 

 

 

 

 
 

本文地址:http://www.anyuan2002.com/bcdm/100185.html
Tags: 架构 根本 x86
修改:vwin网
推行内容
引荐阅览
抢手引荐
引荐文章
关于咱们 | 联络咱们 | 友情链接 | 网站地图 | Sitemap | App | 回来顶部