三种模式:实模式、保护模式和平展模式。

  实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持)。

  保护模式存储器(Windows存储器)可位于整个保护存储系统的任何位置(80286以上的微处理器)。

  平展模式(Windows Vista以上),64位扩展,可寻址1TB的内存(Pentium 4以上未处理器)。

  64位通用寄存器:RAX(累加器)、RBX(基址)、RCX(计数)、RDX(数据)、RBP(基指针)、RDI(目的变址)、RSI(源变址)。

  64位专用寄存器:RIP(指令指针)、RSP(堆栈指针)、RFLAGS(状态)。

  64位段寄存器:CS(代码段)、DS(数据段)、ES(附加段)、SS(堆栈段)、FS(标志,指向当前活动线程的TEB结构->线程结构)、GS(全局)。

  原来放段地址的段寄存器存选择子(selector),用于选择描述表内的一个描述符。描述符(descriptor)描述存储器段的位置、长度和访问权限。一个描述符说明了一个存储段。

  段寄存器可访问两个描述符表:一个是全局描述符表,一个是局部描述符表。全局描述符(global descriptor)适用于所有程序的段定义,而局部描述符(local descriptor)通常用于唯一的应用程序。全局描述符又称系统描述符(system descriptor),局部描述符又称应用描述符(application descriptor)。每个描述符表共2^13=8192个描述符,故两个描述符表共8192*2=16384个描述符。故,一个应用程序可访问内存大小为4G*16384=64TB。

  每个描述符长8B,故全局和局部描述符表每个最长为64KB。

  

图一 Core2微处理器描述符

  1. 基地址(base address)部分表示存储器段的起始位置。

  2. 段界限(segment limit)包含该段中最大的偏移地址。80286访问长度为1B~64KB,而80386之上则为1B~1MB或者4KB~4GB。受控于标志位G粒度位(granularity bit)。

  3. L位是large的意思,决定是否开启32或64位保护模式。64没有段或者界限,只包含一个访问权限字节和若干控制位,段的基地址为00 0000 0000H,即所有代码段都从地址0开始,且没有边界检查。

  4. AV(active)位指示段是否有效。

  5. D位标志是否打开32位指令,1为32位指令(只能用于保护模式),0为16位指令。

  6. 访问权限字节(access rights byte)控制着对保护模式中存储器段的访问,它全面控制着段。例如,如果是数据段,则指定其增长方向。注意,在64位模式中,只有代码段,而没有其它段描述符类型,一个64位平展模式的程序在代码段包含数据和堆栈。

  

图二 访问权限字节

  描述符是通过段寄存器从描述符表中选择的。在段寄存器中,包含13位选择子字段、表选择子位(TI)和请求优先级字段。如下图:

图三 段寄存器内容

  Windows将优先级00赋予内核和驱动程序(同Linux),而分配给应用程序为优先级11。Windows不用优先级01和10。

  平展模式内存系统是不存在分段的系统。首地址为00 0000 0000H,尾地址为FF FFFF FFFFH(40位)。它不使用段寄存器进行寻址。CS只定义代码段访问权限的描述符表中的选择描述符。段寄存器仍负责选择软件的优先级。但不使用描述符中的基址和界限来选择段的内存地址,不会像32位模式下那样修改实际内存地址。64位模式下的偏移地址即是实际的物理地址,且实模式系统是不可用的,但仍允许保护机制和页面调度(CS)。另外,它的打开有L标志位控制。

  另外,由于地址只有40位,故任何超过40位的地址都会被截断。Pentium工作在完全的64位模式下(目前大多数应用程序都是工作在IA32兼容模式下的)。另外,也不是所有的指令都是支持64位的(例如指令的偏移地址的位数就可能会限制住)。

Intel微处理器学习笔记(二) 三种模式的更多相关文章

  1. Intel微处理器学习笔记(三) 不可见寄存器

    参考资料: 1.  http://blog.chinaunix.net/uid-20797642-id-2495244.html 2.  http://www.techbulo.com/708.htm ...

  2. Java设计模式学习笔记(二) 简单工厂模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...

  3. JavaScript新手学习笔记3——三种排序方式(冒泡排序、插入排序、快速排序)

    每种编程语言学到数组的时候,都会讲到排序算法,当时学C语言的时候,卡在排序算法.今天来总结一下javascript中如何实现三种排序算法. 1.冒泡排序(默认升序排列哦) 原理: 冒泡排序的原理,顾名 ...

  4. Intel微处理器学习笔记(一) 实模式内存结构

    图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...

  5. Intel微处理器学习笔记(五) 中断

    ▼ 中断是一个由硬件激发的过程,它中断当前正在执行的任何程序. ▼ 在Intel系列微处理器中,包括INTR和NMI(Non Maskable Interrupt)两个申请中断的引脚和一个响应INTR ...

  6. Intel微处理器学习笔记(四) 内存分页

    内存分页机制(memory paging mechanism)是从386开始的.线性地址通过分页机制透明转换为物理地址. 从这里知道:1. 如果不分页,则线性地址等于物理地址:2. 如果分页,则线性地 ...

  7. MySQL学习笔记:三种组内排序方法

    由于MySQ没有提供像Oracle的dense_rank()或者row_number() over(partition by)等函数,来实现组内排序,想实现这个功能,还是得自己想想办法,最终通过创建行 ...

  8. 概率图模型(PGM)学习笔记(三)模式判断与概率图流

    我们依旧使用"学生网络"作为样例,如图1. 图1 首先给出因果判断(Causal Reasoning)的直觉解释. 能够算出来 即学生获得好的推荐信的概率大约是0.5. 但假设我们 ...

  9. PHP语言学习之php-fpm 三种运行模式

    本文主要向大家介绍了PHP语言学习之php-fpm 三种运行模式,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. php-fpm配置 配置文件:php-fpm.conf 开启慢日志功能的 ...

随机推荐

  1. Hive错误:Unable to load native-hadoop library for your platform

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin- ...

  2. div 在css中透明度怎么调?

    可以用这个属性:opacity: 0.95;opacity为属性,0.95为值(其中值的范围在0~1之间) 参考:https://zhidao.baidu.com/question/689118188 ...

  3. AI-Tank

    编程,就是编写人生,你的思维越好,就的生活就会充满乐趣,不多说了,下面来讲一个游戏. 讲游戏的开始,要说一点,游戏可以玩,不能沉溺.不然人的一生就会沦陷进去. 下面讲一个使用的代码游戏. 在玩游戏的时 ...

  4. windows系统和进程内存基础知识

  5. keras load model 遇到 自定义函数 Lambda(lambda x: softmax(x, axis=1), NameError: global name 'softmax' is not defined

    问题 在定义模型的时候,自定义了一个函数 模型保存之后,load 模型的时候报错: 解决 load 模型的时候需要指定custom object 参考: https://faroit.github.i ...

  6. activemq 消息队列服务器

    ActiveMQ 安装配置 更多 安装 前置条件:1)安装JDK:2)配置 JAVA_HOME 环境变量,确保 echo $JAVA_HOME 输出JDK的安装路径 下载:wget http://ww ...

  7. ZOJ 3949 Edge to the Root

    题意: 在一棵树中,可以从根节点往其他节点加一条边,使得根节点到其他所有节点的距离和最小,输出最小的距离和. 思路: 我们考虑在加的一条边为$1 \to v$,那么在树上从$1 \to v$的路径上, ...

  8. uva10905

    /* 很好的字符串 比较方法 很多个字符串 组成的 数字 需要最大 然后 比较 a和b 是 比较a+b 和b+a 的大小 */ #include<cstdio> #include<s ...

  9. Neutron网络学习

    学习 Neutron 系列文章: 转http://www.cnblogs.com/sammyliu/p/4622563.html (1)Neutron 所实现的网络虚拟化 (2)Neutron Ope ...

  10. 小黄人IP营销的四种玩法思维导图

    小黄人IP营销的四种玩法思维导图 ------------------------------ 本人微信公众帐号: 心禅道(xinchandao) 本人微信公众帐号:双色球预测合买(ssqyuce)