修炼汇编语言第二章:内存地址空间(概述)

目录

前言

一、主板和接口卡

二、存储器各类芯片

三:内存地址空间

总结


前言

什么是内存地址空间呢?如果地址线为10,那么可以寻址1024个地址空间,这1024个地址空间就构成这个CPU的内存地址空间,下面本文将会介绍两部分基础知识,主板和接口卡。


一、主板和接口卡

每一台PC机上都有主板,主板上都有核心器件和一些主要器件,这些器件通过总线相连,这些器件有CPU,存储器,外围芯片组,扩展插槽等,扩展插槽一般有RAM内存条和各类接口卡。而CPU不能直接控制外部设备例如显示器,音响,打印机等,这些都需要接口卡直接控制,而接口卡直接与CPU相连,CPU可以直接控制接口卡,从而实现对外部设备的间接控制。

二、存储器各类芯片

从读写上来看,存储器分为两类:

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

而这些存储器从功能上和连接上又可以分为以下几类

  • 随机存储器
  • 装有BIOS的ROM
  • 接口卡上的RAM(最典型的显卡上的RAM,被称为显存)

下图展示了PC系统中各类存储器的逻辑链接情况‘

三:内存地址空间

上述存储器,在物理上都是独立的器件,但是在以下两点相同:

  • 都和CPU总线相连
  • CPU对他们进行读写时候都通过控制线发出内存读写命令

也就是说,在CPU操控他们的时候,把他们都当成内存,把他们总的看作一个由若干个存储单元构成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间

此时各种储存器可以假象为一个逻辑存储器,每个物理存储器在逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在对应物理存储器中读写数据 

假设:

  • 地址0-7FFFH的32KB空间为主RAM的地址空间
  • 地址8000H-9FFFH的8KB空间为显存地址空间
  • 地址A000H-FFFFH的24KB空间为各个ROM的地址空间

当此时

CPU向内存地址为1000H的内存单元中写入数据,这个数据就被写入主RAM,

CPU向内存地址为8000H的内存单元中写入数据,这个数据就被写入显存

.......

内存地址空间的大小受CPU地址总线宽度限制,8086CPU的地址总线宽度为20,可以传输2^20个不同的地址信息,既可以定位2^20个内存单元,则8086PC的内存地址空间大小为1MB。同理,80386CPU的地址总线宽度为32,内存地址最大空间为4GB

当我们对计算机硬件进行系统编程的时候,必须知道这个系统中的内存地址空间分配情况。因为我们在读写数据的时候,必须知道单元的地址,以确保在对应的存储器中进行。

不同的计算机系统对于系统内存分配情况是不同的,下图是8086PC对内存地址空间分配的基本情况


 

总结

最终的运行程序为CPU,我们用汇编语言的时候,必须要从CPU角度思考问题,对CPU来讲,系统中所有存储器的存储单元都处于一个统一的逻辑的存储器中,他的容量收到CPU的寻址能力的限制,这个逻辑存储器就是我们所说的内存地址空间

而对于初学者,这个概念不免有些抽象,后续乐言讲更新一些实践,来增强大家的感性认识

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值