鱼C论坛

 找回密码
 立即注册
查看: 2374|回复: 4

CPU的寻址能力

[复制链接]
发表于 2012-4-23 16:13:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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就可以了。“

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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-23 16:50:29 | 显示全部楼层
来个人回答下 3Q{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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,两者就不一样了。我最开始就是这里没搞清楚。

不知道解释清楚了没有。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-26 14:18:44 | 显示全部楼层
{:1_1:}3Q:D:D:D:D:D:D:D:D:D
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-26 20:18:05 | 显示全部楼层
要看寄存器是多大的,地址线是多大的,8086寄存器都是16位的,地址线是20位的,16位的当然寻不到20位的了,所以血汗工场就出世了啊。段地址加偏移啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表