搜索
当前位置: 眀彩娱乐 > 动态重定位 >

谁可以帮我介绍一下重定位寄存器和界限寄存器 谢谢

gecimao 发表于 2019-04-23 08:39 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部在Intel 80x86 CPU中,重定位寄存器就是段寄存器,也叫基址寄存器。这些寄存器包括:ES、CS、SS、DS、FS和GS。在Intel 80x86 CPU中,貌似没有界限寄存器。下面是Intel 80x86 CPU段寄存器的具体解释:

  段寄存器是根据内存分段的管理模式而设置的,可用于动态重定位。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

  在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段。

  32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简单描述如下:实方式:前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。保护方式:在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”(Selector)的某个值。[如:在linux-0.11中,CS存储的是段描述符。段描述符的0、1位(右数,从0开始)表示特权等级,2位表示是选择全局描述符表(GDT)还是局部描述符表(LDT),3位至更高有效位表示选择GDT(或是LDT)表中的第(n+1)项(表项从0开始)。]

  *************************以上是个人见解,若有错,请指正 :-)*******************************

  我学汇编好几年,还从来没听说过有这2种寄存器。。。。。。真不知道你是从哪边看来的。。。

本文链接:http://hem-larm.com/dongtaizhongdingwei/233.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部