第一章:基础知识05

让编程改变世界

Change the world by program


 

内存地址空间(概述)

什么是内存地址空间呢?

一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。下面深入讨论。 首先需要介绍两部分基本知识,主板和接口卡。  

主板

在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。 这些器件通过总线(地址总线、数据总线、控制总线)相连。  

接口卡

计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。 CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。  

各类存储器芯片

 

从读写属性上看分为两类:

随机存储器(RAM)和只读存储器(ROM)  

从功能和连接上分类:

随机存储器RAM 接口卡上的RAM 装有BIOS的ROM  

BIOS:Basic Input/Output System,基本输入输出系统。

BIOS 是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应 BIOS 的 ROM。 [caption id="attachment_241" align="aligncenter" width="300"]​​​​ PC机中各类存储器的逻辑连接情况[/caption]  

内存地址空间

上述的那些存储器在物理上是独立的器件。  

但是它们在以下两点上相同:

1、都和CPU的总线相连。 2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。  

将各各类存储器看作一个逻辑存储器:

[caption id="attachment_240" align="aligncenter" width="300"]​​​​ 将各各类存储器看作一个逻辑存储器[/caption] 假设,上图中的内存空间地址段分配如下: 地址0~7FFFH的32KB空间为主随机存储器的地址空间; 地址8000H~9FFFH的8KB空间为显存地址空间; 地址A000H~FFFFH的24KB空间为各个ROM的地址空间。   所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器; 每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间; CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。 不同的计算机系统的内存地址空间分配情况是不同的。  

8086PC机的内存地址空间分配

[caption id="attachment_242" align="aligncenter" width="164"]​​​​ 8086PC机的内存地址空间分配[/caption]  

最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题。(我们学习这门课程的核心思维)

对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。