1615128878 发表于 2012-4-23 16:13:24

CPU的寻址能力

1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13   

存储单元从0开始编号
那么这样一个地址用多少个2进制位来表示?C语言中内存地址是用4个字节表示的

一个有8根地址总线的CPU可以发送 0 到 254 的数据到内存即最大寻址能力254 (0000 0000--1111 1111)

那么 8KB = 8 * 1024B = 8* 1024 * 8b=16384b ->0 到16383 就 到2的14次方 (00 0000 0000 0000 --- 11 1111 1111 1111)

其实 最终要问的问题就是CPU的寻址能力 是表示什么 ?
“我们规定每个存储单元为1Byte,8KB也就是8×1024Byte = 8192Byte。这里求地址总线的宽度,也就是令2的n次方=8193,求出n就可以了。“

存储单元的大少跟寻址能力有关吗 ?寻址能力不是指能表示最大的地址编号?



1615128878 发表于 2012-4-23 16:50:29

来个人回答下 3Q{:1_1:}

野草 发表于 2012-4-24 13:14:55

本帖最后由 野草 于 2012-4-24 13:23 编辑

个人理解如下:我最开始理解寻址能力就是指CPU可以到多少个内存单元里面找东西。

但后来发现寻址能力指的是CPU能找到多少东西,比如,1根总线,可以查找两个内存单元,每个内存单元的容量是1Byte(即8bit),那么就是说1根总线的寻址能力是2Byte。13根总线的话,就是CPU可以到2^13个内存单元里找东西,也就是2^13Byte,即8KB。

因为每个内存单元的容量正好是1Byte,所以在数字上,能到多少个内存单元找东西,和能找到多少东西,是一个数字,如果把单位换成bit,两者就不一样了。我最开始就是这里没搞清楚。

不知道解释清楚了没有。

1615128878 发表于 2012-4-26 14:18:44

{:1_1:}3Q:D:D:D:D:D:D:D:D:D

_作业 发表于 2012-4-26 20:18:05

要看寄存器是多大的,地址线是多大的,8086寄存器都是16位的,地址线是20位的,16位的当然寻不到20位的了,所以血汗工场就出世了啊。段地址加偏移啦
页: [1]
查看完整版本: CPU的寻址能力