按字寻址 按字节寻址

本文详细解析了计算机组成原理中的存储器寻址方式,包括按字节寻址和按字寻址的区别,以及不同寻址方式下寻址范围的计算方法。通过具体实例,如24根地址线下的寻址范围,帮助读者深入理解存储器寻址的基本概念。

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

考研复习,复习计算机组成原理时,看到存储器时对于主存的按字寻址,按字节寻址不怎么明白了,毕竟是一年前学的课程。好多东西都忘了,整了好久才弄明白。以下是我的一些个人看法。

 

先说说字和字节  在计算机中是8位一个字节。

说字长16位时,16位是两个字节

所以32位就是4个字节。

首先来说说按字节寻址。

这里就以24根地址线为例来做说明。

在按字节寻址时 :一个字节就是一个地址。传输的信息只有0和1. 所以按字节寻址的寻址范围是2^24B=16MB。

 

在按字寻址时,由于存在低字节存低地址,高字节存高地址,或低字节存高地址,高字节存地址这两种现象。

当字长是16位时 就是两个字节,需要一根线来区分两个字节的地址。

所以是寻址范围是2^23=8M

同理可得  

当字长32位时,就是4个字节,需要两根线来区分四个字节的位置。

所以寻址范围是2^22=4M.。

以上是我的一些个人看法,如果有什么问题,欢迎指正。

 

转载于:https://www.cnblogs.com/DennySmith/p/10236185.html

### 按字寻址与按字长寻址的概念及区别 #### 什么是按字寻址? 在计算机体系结构中,按字寻址是指存储器中的地址单元是以“字”为单位进行编址的方式。这里的“字”通常是一个固定大小的数据单元,可能是16位、32位或其他长度,具体取决于处理器的设计架构[^1]。在这种模式下,每一个地址对应的是一个完整的字。 #### 什么是按字长寻址? 按字长寻址则是一种更具体的描述方法,在这种情况下,“字”的定义直接由CPU的字长决定。如果某台机器具有32位字长,则其内存按照每4个字节一组来分配唯一的地址编号;对于一台64位字长的系统来说,相应的就是8个字节作为一个整体被赋予单一逻辑位置标识符[^2]。 #### 主要区别 两者的根本差异在于如何定义以及处理所谓的‘基本存取单位’——即每次读写操作所涉及的信息量标准不同: - **粒度粗细**:按字寻址可以独立于实际硬件实现而存在多种可能解释下的灵活性较大; 而按字长寻址严格绑定到当前设备支持的最大自然数据宽度上. - **效率考量**:当程序频繁请求小于整个word size 的变量时(比如char类型),采用基于特定bit数目的addressing scheme可能会带来额外开销因为需要更多指令完成相同功能[^3]. ```c++ // 假设我们有一个简单的C++代码片段展示两种情况下的访问行为差异 #include <iostream> using namespace std; int main() { char c = 'A'; // 占用1 byte空间 int i = 0xFFFF; // 可能占用4 bytes (假设环境为32-bit) cout << "Address of char variable: " << &c << endl; cout << "Address of integer variable: " << &i << endl; return 0; } ``` 上述例子展示了不同类型变量占据的不同物理地址范围。如果是纯Word Addressable模型, 那么即使是最小单位如字符型也必须映射至最接近下一个整数倍边界处才能满足规则约束条件. #### 总结说明 综上所述,虽然两者都涉及到对内部RAM资源定位机制的研究探讨,但从应用层面看各有侧重方向,并且随着技术进步不断演变优化适应新需求场景变化趋势明显可见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值