当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机三级辅导:32位微机的内存治理模式
发布时间:2010/4/5 17:53:56 来源:城市学习网 编辑:admin
  32位微机的内存存治理仍然采用“分段”的治理模式,存储器的逻辑地址同样由段地址和偏移量两部分组成。32位微机的内存治理与16位微机的有相同之处,也有不同之处,因为它提供了两种不同工作方式:实方式和保护方式。
  1、物理地址的计算方式
  实方式:段地址仍然是16的倍数,每个段的最大容量仍为64K。段寄存器的值是段的起始地址,存储单元的物理地址仍为段寄存器的值乘16,再加上段内偏移量。在此方式下,32位微机的内存治理与16位微机是相一致的。
  保护方式:段地址可以长达32位,其值可以不是16的倍数,每个段的最大容量可达4G。段寄存器的值是表示段地址的“选择器”,用该“选择器”可从内存中得到一个32位的段地址,存储单元的物理地址就是该段地址加上段内偏移量,这与16位微机的物理地址计算完全不同。
  2、段寄存器的引用
  32位CPU内有6个段寄存器,程序在某一时刻可访问6个不同的段。其段寄存器的值在不同的方式下具有不同的含义:
  、在实方式下,段寄存器的值就是段地址;
  、在保护方式下,段寄存器的值不是段地址,是段地址的“选择器”。它间接指出一个32位的段地址。
  下面分别说明各段寄存器的用法和作用。
  代码段寄存器:32位微机在取指令时,系统自动引用CS和EIP来取出下条指令。在实方式下,由于段的最大容量不超过64K,所以,EIP的高16位全为0,其效果相当于16位CPU中的IP。
  堆栈段寄存器:32位微机在访问堆栈段时,总是引用堆栈段寄存器SS。但在不同的方式下其堆栈指针有所不同:
  1)、在实方式下,32位微机把ESP的低16位SP作为指向堆栈的指针,所以,我们可以认为栈顶单元是由SS和SP来指定的。这就与16位微机访问栈顶单元的方法相一致;
  2)、在保护方式下,堆栈指针可用32位的ESP和16位的SP。
  数据段寄存器:DS是主要的数据段寄存器。通常情况下,它是除访问堆栈以外数据时的默认段寄存器。在某些串操作中,其目的操作数的段寄存器被指定为ES是另一个例外。
  另外,段寄存器CS、SS、ES、FS和GS也都可以作为访问数据时的段寄存器,但它们必须用段超越前缀的方式在指令中直接写出。用这种方式会增加指令的长度,指令的执行时间也有所延长。
  一般来说,程序频繁访问的数据段用DS来指向,不太经常访问的数据段可用ES、FS和GS等来指向。
  3、存储单元的内容
  32位微机存储单元内容的存储格式与16位微机的完全一致,也都采用“高高低低”的原则来存放数据。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved