标签:使用 sp 数据 bs 代码 linux as 管理 nbsp
一.使用80x86 微处理器,必须搞懂以下三种不同的地址:
1)逻辑地址——每个逻辑地址由一个段标示符+段内偏移量构成(自己认为这个逻辑地址指向的就是程序代码的或数据的地址)
2)线性地址——32位无符号整数,可表示4GB的线性地址,通常十六位进制表示,0x00000000---0xffffffff
3)物理地址——先简单的理解为那块内存条
像我一样的菜鸟对线性地址和物理地址会有一些主观的认识的,但对逻辑地址的组成应该是没什么主观的看法吧。
其实除了物理地址以为,线性和逻辑地址都只是一堆数据而已,而这堆数据时如何存储,存在外存还是内存,我现在还不清楚。
二.逻辑地址
(个人理解“段”就是某一程序被调入内存的指令集合数据的开始到结束那一部分)
段标示符是一个16位长的字段,称为段选择符。顾名思义,是用来选择段的一个标识。这个段由3一些字段表示索引号,索引的就是具体哪个段。
每个段由一个8字节的段描述符表示(类似于一片文章的大纲),描述段的特征(具体请百度)。段描述符放在GDT/LDT 中 (全局描述符表/局部描述符表)
段也好,段描述符也好只是一堆数据,因此GDT在主存中的地址和大小放在gdtr控制寄存器中,而当前被使用的LDT地址和大小被放在ldtr控制器中。
今天就写到这里,这是我这个菜鸟今天的收获,拿来与大家分享,有不对的地方 一定要帮小弟指出来啊!!谢谢^_^
标签:使用 sp 数据 bs 代码 linux as 管理 nbsp
原文地址:http://www.cnblogs.com/msh-/p/4124767.html