最近在看王爽的 汇编语言书,看到第一章就一点不解
一个cpu有10根地址总线,一个导线可以传送的稳定状态就两种:高电平和低电平,用二进制表示就是1或者0,10根地址导线就可以表示10位二进制数据。也就是二的十次方而已。
但是在内存地址的概述时
又说一个cpu的地址总线宽度为10.则可以寻址1024个存储单元。
这里就有问题啦!
上面说10根总线的时候 只是10位二进制数据而已,
下面却又说是1024个存储单元,
一个存储单元不就是应该有8位二进制数据的么?
这里到底说的是什么意思?地址总线的宽度到底该如何计算它的寻址能力??
新手,求大神指点
------解决方案--------------------
地址总线就是用来告诉(某些时候可能没有内存控制器)内存控制器CPU要在那个内存单元上进行读或者写的。当地址总线上的每条线取不同的高电平或者低电平的时候,都会对应一个唯一的内存单元。确定了内存单元之后,再通过控制线和数据线进行内存和CPU之间的数据传输。
举个例子,地址总线上的值类似电话号码,而内存单元类似电话。
------解决方案--------------------
说错了,实际的物理硬件在处理内存读写的时候的各项操作的先后顺序我不知道,我想当然了。
------解决方案--------------------
2 的十次方 不就是 1024 吗?
一个存储单元虽然有 8 个 bit, 但是它们只有一个地址, 而不是需要 8 个地址. 寻址的最小单位就是 BYTE, 不是 bit.
------解决方案--------------------
10根总线的时候,是10位二进制数据,每一根线上有一个确定的高低电平。对应一个寻址单元。
比如10个0跟10个1就是两种不同的单元。
每一位上分别可以有0和1两种状态,
排列组合下 2^10=1024个寻址单元。
寻址能力嘛 2^n,n是地址总线的根数。