鱼C论坛

 找回密码
 立即注册
查看: 2948|回复: 11

再汇编语言(作者:王爽)课本第6页问题!

[复制链接]
发表于 2012-2-20 04:41:21 | 显示全部楼层 |阅读模式

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

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

x
存储单元和内存单元是什么关系!

一: CPU是通过地址总线来指定存储器单元的。可见地址总线上能传送多少个不同的信息,CPU可以对多少个存储单元进行寻址;

二:一个CPU有N根地址(总线|线)【这里要注意看啊!书上是地址线,而视频是地址总线这里我不知道哪个是对的,有懂的同学麻烦告诉下!!!】,则可以说这个CPU的地址总线的宽度为N.这样的CPU最多可以寻找2的N次方个内存单元。

CPU地址总线=存储单元
CPU地址【总线|线】=2的N次方个内存单元
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-20 07:04:44 | 显示全部楼层
本帖最后由 怡然轻风 于 2012-2-20 08:10 编辑

看到这部分 我也不是很明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-20 07:15:02 | 显示全部楼层
我是这样理解的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-20 08:00:32 | 显示全部楼层
我是这样理解的。
地址总线由N根地址线合起来的,N就是地址总线的宽度。比如,8086是由20根地址线构成的地址总线,所以我们说,8086地址总线的宽度为20。也就是说,8086的地址总线是由20根导线组成的,每根导线一次可传送一个0或1,所以,20根导线(地址线),一次可传送20个0或1。因此,对于0、1来讲有2的20次方个不同的组合(1048576个不同的组合),因此,20根地址线可以形成1048576个不同的0、1的组合,比如,第一个组合是0000,0000,0000,0000,0000,第二个组合是0000,0000,0000,0000,0001,.......,最后一个组合是1111,1111,1111,1111,1111。如果每一个组合我们将其作为一个内存单元的名字,故,由20根地址线所组成的宽度为20的地址总线,可以对1048576个内存单元命名。这样,CPU就可以对1048576个内存单元进行访问,也就是说,CPU的寻址能力为2的20次方。同理,有N根地址线,那么CPU的寻址能力就是2的N次方。
我们通常所说的一个存储单元(Byte),是指由8个二进制位(bit)组成的。换句话来说,8个连续的0或1我们将其称为一个字节(一个存储单元)。而计算机对于0或1的存储对于CPU内部来讲是在寄存器中,而对于CPU外部来讲是在内存或者其它存储器中实现的。因此,将存储单元说成是内存单元是不完全正确的,但通常我们认为存储单元就是指的内存单元。我认为我们不必去纠结这两个概念的区别。
以上是我个人的理解,如有不正确的地方,敬请名位高手指正。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-20 08:15:30 | 显示全部楼层
CPU地址总线=存储单元
CPU地址【总线|线】=2的N次方个内存单元
这样用“=”是不正确的。
地址总线与存储单元怎么能相等呢?CPU地址总线与2的N次方个内存单元如何相等?
只能说CPU有N根地址线,那么就可以说CPU最多可寻找2的N次方个内存单元,也就是寻址能力为2的N次方。
补充前面一个回复:存储单元与内存单元的关系?
CPU通过地址总线寻找的存储单元实际上就是内存单元。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-20 19:35:22 | 显示全部楼层
不好意思,我表达不太清楚,希望能谅解。其实我的等号(=)其实表达相对,是按照课文表达意思简洁版罢了。。。

好吧!说下问题吧,最后你说的(CPU通过地址总线寻找的存储单元实际上就是内存单元。)这我觉得不对吧!(如有错误还希望能指正)



你的回答存储单元:(我们通常所说的一个存储单元(Byte),是指由8个二进制位(bit)组成的。)

你的回答内存单元:(故,由20根地址线所组成的宽度为20的地址总线,可以对1048576个内存单元命名。)

从这里我推断,用一个字节来说吧!(1个存储单元=2的8次幂内存单元)!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-20 20:54:49 | 显示全部楼层
额,其实把第一章看完,就知道存储单元和内存单元是一回事,CPU控制硬件,其实就是将所有存储器逻辑为一个内存地址空间。所以第一句话的“多少个不同信息”不能理解值等于多少个内存单元,而应该理解为地址总线能传送的信息量,决定CPU的寻址能力。楼主的第二个疑惑,我觉得地址线和地址总线是一致的,并不冲突,地址总线是总称,地址线是从中抽象出的单一概念,一个地址对应一个内存单元的地址,自然地址总线的宽度,也就是有几根地址线,所以是2^N
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-21 03:00:11 | 显示全部楼层
谢谢你的回答,但是我补充了点新问题 其实我的等号(=)其实表达相对,是按照课文表达意思简洁版罢了。。。

而地址总线里面我推断 地址总线里有N根地址线!我不知道有多少根地址线因为CPU都不一样的!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-21 03:17:54 | 显示全部楼层
谢谢大家帮助,帮我明白了道理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-22 05:58:31 | 显示全部楼层
你的问题:

好吧!说下问题吧,最后你说的(CPU通过地址总线寻找的存储单元实际上就是内存单元。)这我觉得不对吧!(如有错误还希望能指正)



你的回答存储单元:(我们通常所说的一个存储单元(Byte),是指由8个二进制位(bit)组成的。)

你的回答内存单元:(故,由20根地址线所组成的宽度为20的地址总线,可以对1048576个内存单元命名。)

从这里我推断,用一个字节来说吧!(1个存储单元=2的8次幂内存单元)!


我的回答:
楼主,你可能现在没有将第一章看完吧,其实你将第一、二章看完了,会对地址总路线与CPU的寻址有不一样的看法和理解。按王爽和小甲鱼老师的观点,暂时不要纠结某一个问题上,继续学习可能会在今后的学习中理解前面的问题。不过还是将上面未能给你说明白的再讲一下我个人的观点吧。
我们将一个内存单元(也说是一个字节)比作是宾馆的一个房间(假设一间房子里的8个床位,每个床位代表一个位),房间号就是地址。如果现在我们只用一个0或1来给房间编号,我们只能给两个房间编号(0号和1号);如果我们用两个0或1来给房间编号,我们可以给四个房间编号(00、01、10、11);如果我们用三个0或1给房间编号,我们可以给八个房间编号(000、001、010、011、100、101、110、111),以此类推,我人用N个0或1,就可以给2的N次方个房间编号。这同用地址线给内存编号是一样的道理,有N根地址线就可以给2的N次方个内存单元编号,那么有了地址编号的内存单元CPU才能找到。假设内存单元有100个,但地址总线只给64个单元编了号,那么CPU就只能找到64个内存单元,其它的36个内存单元是无法找到并使用的。
因此说,1个字节就相当于一个房间,也就是一个内存单元。CPU的寻址能力就是CPU根据地址线的多少条数,计算2的地址线条数次幂(所能形成的地址编号数),就是CPU能找到的内存单元数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-25 17:58:32 | 显示全部楼层
谢谢了,如果可以的话帮我回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-2-25 17:58:52 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 20:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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