存储器的基本概念 —— 存储器的基本结构和寻址

本文介绍了计算机存储器中两种基本的寻址方式:按字节寻址和按字寻址。按字节寻址中,每个存储单元存放一个字节,并具有唯一的字节地址;按字寻址则以机器字为单位,每个存储字由四个可独立寻址的字节组成,使用字的高位字节地址作为字地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、存储器的基本结构

在这里插入图片描述
在这里插入图片描述


二、寻址

主存各存储单元的地址空间是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储单元。通常计算机系统既可按字寻址,又可按字节寻址。

(1)按字节进行寻址

存放一个字节的单元,称为字节存储单元(1B),相应的地址称为字节地址。每一个存储字包含4个可独立寻址的字节。

在这里插入图片描述

(2)按字进行寻址

存放一个机器字的存储单元,通常称为字存储单元(4B),相应的单元地址叫字地址。字地址是用该字高位字节的地址来表示的,故其字地址是4的整数倍,正好用地址码的末两位来区分同一字的4个字节的位置。
在这里插入图片描述

### 存储器直接寻址与间接寻址的区别 #### 存储器直接寻址存储器直接寻址模式下,指令中的地址字段直接给出了操作数所在的内存单元地址。这意味着处理器可以直接访问该地址来读取或写入数据[^2]。 例如,在一条加载指令中,如果指定了一个具体的内存地址作为源操作数,则CPU会立即前往这个指定的物理地址处取得所需的数据: ```assembly MOV AX, [1000h] ; 将位于内存地址1000h的内容移动到AX寄存器 ``` 这种寻址方式的优点在于简单直观,易于实现;缺点是在某些情况下灵活性不足,因为每次都需要显式提供确切的目标地址。 #### 存储器间接寻址 相比之下,存储器间接寻址并不直接指向最终要访问的数据位置,而是先通过另一个中间变量——即所谓的“指示符”(通常是某个寄存器或特定内存区域),从中取出真正的目标地址后再进行实际的数据访问操作[^1]。 考虑如下例子: 假设有一个名为`PTR`的寄存器保存着真正想要访问的那个内存单元的地址,那么可以通过这种方式来进行间接寻址: ```assembly LEA BX, PTR ; 加载有效地址至BX寄存器 MOV AL, [BX] ; 使用BX寄存器内的值作为索引来获取数据 ``` 这里的关键点在于第一次 MOV 指令并不是直接作用于原始数据本身,而是基于由 `BX` 提供的新地址去定位具体的数据项。这种方法增加了编程上的弹性,允许动态改变所引用的对象而不必修改原有代码逻辑。 综上所述,两者主要差异体现在如何解析出待处理的信息所在的确切地点:前者静态地依赖预定义好的固定位移量,后者则借助额外层次的抽象机制达成更灵活多样的控制流设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值