主存中存储单元地址的分配
主存与 CPU 的联系
当要从存储器读取某一信息字时,首先由 CPU 将该字的地址发送到 MAR,经由地址总线送至主存,然后发出读命令。主存接到读命令后,知道需要将该地址单元的内容读出,便完成读操作,将该单元的内容读到数据总线上,至于该将数据由 MDR 送到什么地方,这就不是主存的任务了,而是由 CPU 决定的。
高位字节和低位字节
通常一个 16 位数据,比如 FF1A(16 进制),那么高位字节就是 FF,低位就是 1A。
左边是高位,右边是低位。
16 位和 32 位是怎样存储的
一个 16 位的数占两个字节,即高位字节和低位字节。人再书写一个 16 位的数时,总是会把高位写在前面,把低位写在后面。然而,当这个数被存储到内存中时,并没有固定的存储顺序。
以 FF1A 为例,M 用来代表高位 FF,L 用来代表低位 1A。那么有两种方式把这两个字节存储到内存中,即 ML 或 LM。把 M 存储在前的顺序称为“正向(forward)”或“高位优先(big-endian)”;把 L 存储在前面的顺序称为“逆向(reverse)”或“低位优先(little-endian)”。
x86 架构的机器采用的时逆向顺序存储一个数。
版权声明: 本文为 InfoQ 作者【朱华】的原创文章。
原文链接:【http://xie.infoq.cn/article/feec7540679a7c768c59c4b12】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论