浅谈80X86内存寻址问题
一、基础知识
本文主要浅谈80x86系列处理器的内存地址的寻址问题,当然这种问题在我学习单片机的时候是没有遇到过的。当今的操作系统不需要自己来跟踪管理物理地址,而这个工作全部由处理器的内存管理单元来完成。这样的先进电路设计使得操作系统的使用更加的高效。本文中我们主要涉及80x86的硬件内存管理电路原理与linux中的使用方式。
在早期的单片机程序设计中,在我读取某个内存单元的数据时候,我会直接对这个地址进行读写。而如今,在我们学习linux时候,我们就不能这么简单的操作,首先需要了解一下简单的知识,其中包括三种地址的含义。
逻辑地址:在80X86处理器系列中,程序员所使用的地址包括两个部分,段地址+基址,这根intel的设计思路是分不开的,早期的intel芯片如8086只是简单的16位,但是为了满足不增加系统位数而扩展物理内存寻址能力的的要求,所以intel的设计师采用段机制来扩展物理内存,当时程序员使用的就是CS:IP来寻址代码,用来实现逻辑地址到线性地址的映射,其逻辑地址到物理地址的转换方式为CS*16+IP,正好是16位的线性地址,如此便得来8086总共拥有位地址总线的原因。
线性地址:首先必须有一个清楚的概念,线性地址也就是虚拟地址,linux用户进程使用的地址就是这个虚拟地址,32位的整数可以寻址2^32=4Gb的线性空间。其地址范围用HEX进制来表示就是0x00000000~0xFFFFFFFF
物理地址:物理地址就是用来寻址物理存储芯片的地址,通常也就是处理器的物理地址总线所寻址的地址空间。常常有32位等。
逻辑地址,线性地址,物理地址的转换关系如下图所示:
二、、分段机制
原始的8086系列处理器,分段采用的是段左移四位加段内偏移地址的这种模式,这也就是传统的实地址模式。但是从80286开始,Intel系列处理器增加了另一种模式,这种模式叫做保护模式(protected mode)。我们把主要的精力放在保护模式的研究上,实地址模式主要用于处理器的向前兼容,但是有一点需要提起的是,即使现在拥有保护模式的处理器,其在开机时仍然是处在实地址模式下,用于系统的启动和操作系统的早期处理。分段基址主要涉及到两点一线,两点即逻辑地址与线性地址(虚拟地址),一线即为分段管理单元。这里主要讲解的是段选择符(CS,SS,DS),段描述符,段描述符表(GDT),以及从逻辑地址到线性地址的转移过程。这里首先说明CS等逻辑段寄存器与早期逻辑段寄存器的区别。实地址模式下的段寄存器表示的是段的起始地址。而在保护模式,段寄存器的高13位(15-13bit)保存着段描述符表的索引,后面三位保存着该段的属性,如访问等级等;其结构如下图所示。
段描述符索引:用于在段描述符表中需找相应的描述符。
TI: 用于指定是在GPT还是LPT。
RPL:用于设定访问权限等级。
其中最后一项RPL用于指定访问等级,0代表最该等级,3代表最低等级。至于其中什么叫段描述符,什么叫做段描述符表在后文会有介绍。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
80x86的寻址方式.doc
非常好的介绍80X86寻址方式的ppt。
本资源为80x86的指令系统和寻址方式的ppt本人感觉讲的不错推荐给大家
80X86的寻址方式和指令系统-6ppt[精选].pptx
80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程.rar80x86汇编语言程序设计教程....
80X86寻址方式与指令系统.pdf
这是一份学习汇编语言的资料,主要是80x86的指令和寻址方式的讲解
比较详尽的综合了80X86汇编语言程序的各种寻址方式、指令及相关说明。
80x86汇编语言程序设计 PPT讲解80x86汇编语言程序设计 PPT讲解
80X86实验指导书, ,通过实验来学习80X86 的指令系统、寻址方式以及程序的设计方法,同时掌握联机软件的使用。
80x86 汇编语言程序设计教程80x86 汇编语言程序设计教程80x86 汇编语言程序设计教程80x86 汇编语言程序设计教程80x86 汇编语言程序设计教程
80x86汇编语言程序设计答案 答案基本都有,仅供参考 如果还有什么不足敬请见谅!
80x86汇编程序设计
80x86汇编语言程序设计教程80x86汇编语言程序设计教程80x86汇编语言程序设计教程80x86汇编语言程序设计教程
《80x86汇编语言与计算机体系结构》,最好的计算机汇编图书。
80x86 汇编语言 chm版 80x86 汇编语言 chm版 80x86 汇编语言 chm版80x86 汇编语言 chm版
80x86课件,1-6章,ppt;
80X86 汇编指令符号大全80X86 汇编指令符号大全80X86 汇编指令符号大全80X86 汇编指令符号大全
80x86汇编语言程序设计教程,顾名思义~~
80x86汇编一些复习资料80x86汇编一些复习资料