寻址方式总结

 

 

  1. 在X86系列中,8086是16位的处理器,从80386开始为32位的处理器,其中80286也是16位处理器,但是在寻址方式上开始了从实地址模式到保护模式的过渡。
  2. 当CPU是16位时,能决定的地址空间大小为1M字节,地址总线的宽度是20位。(CPU中ALU的宽度是16位,所以可直接加以运算的指针长度也是16位,所以产生了分段的方法,可以将16位的地址映射到24位的地址空间)
  3. 8086CPU中设置了四个段寄存器,CS(可执行代码),DS(数据),SS(堆栈),ES(其他),这些段寄存器都是16位,对应地址总线中的高16位,在相加的时候是用内部地址中的高12位和段寄存器中的16位相加,内部地址中的低四位保留不变。 

寻址方式总结_第1张图片

  1. 8086这种内存寻址方式缺乏对内存空间的保护,因为对于每一个从段寄存器的内容确定的基地址,一个进程能访问从它开始的64k字节的连续地址空间,没有限制,通过改变段寄存器的内容,一个进程可以随意访问内存中的任意一个单元,这就不能很好地保护进程和系统本身。这就是实地址模式。
  2. 寻址方式总结_第2张图片

    80386是个32位的CPU,ALU数据总线是32位,所以他的寻址能力达到了4千兆(4G),80386是在8086的基础上,增添了两个段寄存器:全局性的段描述表寄存器GDTR和局部性的段描述表寄存器LDTR。通过改变段寄存器的功能,让它从基地址变为指向一些必要的数据结构的指针(指向段描述结构数组),由于从内部地址转换到物理地址的过程中必须要进行相关权限的确认。
  3. 在80386保护模式中是段式存储,但是更好地方法是页式存储管理,但是那些权限管理还有其他的数据结构离不开段式存管,所以相当于在有段式存管所映射而成的地址上再加一层地址映射。(8086中因为不用页式存管所以线性地址=物理地址,所以在保护模式下线性地址不再等同于物理地址,是先转换为线性地址,再转换为物理地址。)。把线性地址空间划分为4K字节的页面,每个页面被映射至物理存储空间任意一块大小为4K的区间,地址不一定连续。在页面目录中有1024项,每一项指向一个页面表,在每个页面表中有1024个页面描述项,所以可以一层一层的找上去,

                                                                                 页面目录-------》页面表-----》 页面偏移

 

你可能感兴趣的:(寻址方式总结)