计组_存储单元的地址分配和数据的存储和排列方式(大端方式/小端方式)
存储单元的地址分配和数据的存储和排列方式(大端方式/小端方式)
存储单元的地址分配
- 主存各
存储单元
的空间位置
是由单元地址号
来表示的, - 而
地址总线
是用来指出存储单元地址号
的,根据该地址可读出或写人一个存储字
。 - 不同的机器
存储字长
也不同,为了满足字符处理的需要,常用8位二进制数表示一个字节
,因此存储字长都取8(bit)的倍数。 - 通常计算机系统既可
按字
寻址,也可按字节
寻址。- 例如IBM 370机的
字长为32位
,- 它可按
字节
寻址,即它的每一个存储字包含4个可独立寻址的字节
, - 其地址分配如图(a)所示。
字地址(word address)
的二进制分别是:0000,0100,1000- 该矩阵下,每一行代表该机器的一个字(word);四个数字分别表示该字中的四个字节的四个地址
- 字地址是用(构成)该
字
(的4个字节中的)高位字节的地址来表示- 根据后面的数据存储和排列方式可以知,该方式属于
小端方式
排列
- 根据后面的数据存储和排列方式可以知,该方式属于
- 故其
字地址
是4的整数倍(4Byte),正好用地址码
的末两位
来区分同一字
的4个字节的位置
。
- 它可按
- 但对PDP -11机而言,其
字长为16位
,字地址是2的整数倍.- 它用
低位字节
的地址来表示字地址
- 该方式属于
大端方式
排列
- 该方式属于
- 它用
- 由图(a)所示,对
24位地址线
的主存而言,按字节
寻址的范围是16 M( 2 24 = 2 4 × 2 20 = 16 M ( B y t e ) 2^{24}=2^{4}\times 2^{20}=16M(Byte) 224=24×220=16M(Byte),(地址线的位数直接决定了字节的寻址能力(范围,和机器相关的单位是字
,也就是同样位数的地址线的寻址范围会因为不同的机器而不同);按字
寻址的范围为4M(按字寻址的范围宽度/4)(a机器的一个字包含4个Byte)。 - 由图(b)所示,对
24位地址线
而言,按字节
寻址的范围仍为16 M,但按字
寻址的范围为8 M。
- 例如IBM 370机的
数据的存储和排列
- 现代计算机基本上都采用
字节编址
,即每个地址编号
中存放1字节。 - 不同类型的数据占用的
字节数
不同,- int和 float型数据占4字节,double型数据占8字节等,而
程序中对每个数据只给定一个地址
。 - 假设
变量i
的地址为08 00H,字节
01H、23H、45H、67H应该各有一个内存地址
,那么地址08 00H对应4字节中哪字节的地址(最高字节地址还是最低字节地址)
呢? - 这就是字节排列顺序问题。
- int和 float型数据占4字节,double型数据占8字节等,而
大端方式
按从最高有效字节到最低有效字节的顺序存储数据,即最高有效字节存放在前面
;
小端方式
按从最低有效字节到最高有效字节的顺序存储数据,即最低有效字节存放在前面
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-11-13 navicat/dataGrip in IDEA/vscode/搭建mysql学习环境/beginner利用小皮控制面板(phpStudy)来快速搭建mysql的运行环境/生成测试数据并填充到表
2021-11-13 mysql_windows/mysql服务安装/使用zip包来安装mysql服务:Installing MySQL onWindows Using a noinstall ZIP Archive