. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->基础知识
主题 : :  关于寻址能力的一些胡思乱想。。。。  [待解决] 回复[ 37次 ]   点击[ 1361次 ]  
jaguaer
[帖 主] [ 发表时间:2010-08-22 11:42 ] 
荣誉值:0
信誉值:0
注册日期:2010-08-20 12:42
本人初学汇编,所以免不了有个毛病,就是做完检测题之后,想找正确答案对一对。

所以,当我看到检测点1.1的第一道题,全世界的答案都是13的时候,本人习惯性的妥协了。

    但是,心里还是多少有点不甘心。。。。

    于是拿到这里说说,就当是在胡言乱语好了。。。。

    先说说8KB的含义,大家都认为是指8K个内存单元,因为一个内存单元正好是一个Byte。我认为这正好是个巧合而已。

    请大家想想,如果现在规定,一个内存单元不再是八位了,而是四位,那么大家怎么来表示寻址能力呢?按照前面的思维,应该是8K个0.5B?也就是4KB。又如果一个内存单元是十六位呢,8K个2B吗?也就是16KB。
你们看,同样的地址总线,在单个内存单元容量标准不同的时候,看上去寻址能力(个数)却跟着也发生变化了,这显然是不合理的一种表示方法。

    因为,我们要表示的是能够寻找到的内存单元的个数,所以我们不需要知道具体的内存单元的容量。无论内存单元的容量是多少位,同样的总线都能找到一样多的内存单元。

    再者,8K个Byte,即8k个字节,是表示一个容量,而这个时候我们并不需要知道具体容量,只需要知道能够寻到的个数。

    好比,一个房产中介告诉你他有100套二手房,这是完全可以让人理解的;但是如果他告诉你他有100000平米的房子,你可能就要犯晕了,到底是多少套啊?即便是你事先知道一套房子的面积等于100平米,你也会认为用面积来表示房子的个数是多此一举的行为吧。

    因此,把8KB的B用来解释是一个内存单元的单位是不合理的。在我看来,这个8KB应该是8KB个内存单元,而不是8k个内存单元B,8K个内存单元B是毫无意义的一种表示方法。

    即是8k*8bit=65536bit的简化写法。而65536=2^16,也就是说,8KB寻址能力的CPU,它的地址总线应该为16根。

    按照这种无论一个内存单元的容量具体是多少,这样的表示方法都不会发生变化。
b307077419
[第9楼] [ 回复时间:2010-09-06 17:02 ] 
荣誉值:0
信誉值:0
注册日期:2010-09-04 10:41
地址总线的宽度决定访问存储单元个数,而每个单元格的位数是定数,当然CPU的寻址能力就能代表了内存的容量咯
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved