《汇编语言(第3版)(王爽 著)》学习笔记三:基础知识(3)

版权声明:该文章由作者原创,未经许可请勿转载! https://blog.csdn.net/qq_29381145/article/details/82937025

1.11 内存地址空间(概述)


  1. 什么是内存地址空间呢?举例来讲,一个 CPU 的地址总线宽度为 10,那么可以寻址 1024 个内存单元,这 1024 个可寻到的内存单元就构成这个 CPU 的内存地址空间。

1.12 主板


  1. 在每一台 PC 机中,都有一个主板,主板上有核心器件和一些主要器件,这些器件通过总线(地址总线、数据总线、控制总线)相连。这些器件有 CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有 RAM 内存条和各类接口卡。

1.13 接口卡


  1. 计算机系统中,所有可用程序控制其工作的设备,必须受到 CPU 的控制。CPU 对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。扩展插槽通过总线和 CPU 相连,所以接口卡也通过总线同 CPU 相连。CPU 可以直接控制这些接口卡,从而实现 CPU 对外设的间接控制。简单地讲,就是 CPU 通过总线向接口卡发送命令,接口卡根据 CPU 的命令控制外设进行工作。

1.14 各类存储器芯片


  1. 一台 PC 机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器RAM)和只读存储器ROM)。
  2. 随机存储器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入,关机后其中的内容不丢失。
  3. 这些存储器从功能和连接上又可分为以下几类:
  • 随机存储器:用于存放供 CPU 使用的绝大部分程序和数据,主随机存储器一般由两个位置上的 RAM 组成,装在主板上的 RAM 和插在扩展插槽上的 RAM。
  • 装有 BIOS(Basic Input/Output System,基本输入/输出系统)的 ROM:BIOS 是由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应 BIOS 的 ROM。例如,主板上的 ROM 中存储着主板的 BIOS(通常称为系统 BIOS);显卡上的 ROM 中存储着显卡的 BIOS;如果网卡上装有 ROM,那其中就可以存储网卡的 BIOS。
  • 接口卡上的 RAM:某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有 RAM。最典型的是显卡上的 RAM,一般称为显存。显卡随时将显存中的数据向显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。
    图 1.7 PC 机中各类存储器的逻辑连接

1.15 内存地址空间


  1. 上述的那些存储器,在物理上是独立的器件,但是在以下两点上相同。
  • 都和 CPU 的总线相连。
  • CPU 对它们进行读或写的时候都通过控制线发出内存读写命令。
  1. 这也就是说,CPU 在操控它们的时候,把它们都当作内存来对待,把它们总的看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。在汇编这门课程中,我们所面对的是内存地址空间:
    图 1.8 将各类存储器看作一个逻辑存储器
  2. 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU 在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。
  3. 内存地址空间的大小受 CPU 地址总线宽度的限制。8086 CPU 的地址总线宽度为 20,可以传送 2 20 2^{20} 个不同的地址信息(大小从 0 至 2 20 1 2^{20}-1 ),即可以定位 2 20 2^{20} 个内存单元,则 8086 CPU 的内存地址空间大小为 1MB。同理,80386 CPU 的地址总线宽度为 32,则内存地址空间最大为 4GB。
  4. 我们在基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分配情况。因为当我们想在某类存储器中读写数据的时候,必须知道它的第一个单元的地址和最后一个单元的地址,才能保证读写操作是在预期的存储器中进行。
  5. 不同的计算机系统的内存地址空间的分配情况是不同的,下图展示了 8086 PC 机内存地址空间分配的基本情况:
    图 1.9 8086 PC 机内存地址空间分配

1.11 ~ 1.15 小结


  • 最终运行程序的是 CPU,我们用汇编语言编程的时候,必须要从 CPU 的角度考虑问题。对 CPU 来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受 CPU 寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。
  • 对于初学者,这个概念比较抽象,我们在后续的课程中将通过一些编程实践,来增加感性认识。

猜你喜欢

转载自blog.csdn.net/qq_29381145/article/details/82937025