lyoal 发表于 2012-10-16 09:26:43

寻址和数据处理的纠结处,请大虾指导吓。谢谢

    最近在看小甲鱼的汇编基础教程,教程中说的CPU寻址能力,寻址单位最小是字节吗?8086CPU地址总线的宽度是24,2^24/1024^2=16MB.不明白的是,这个地址总线宽度24的寻址为什么不是位。而数据总线宽度16也是以字节为单位,2^16/1024=64KB.不明白为什么不是以位为单位呢,每根控制线或数据线最多传送的数据不是0/1吗,不是应该先除以8后才能得字节撒。小弟初次接触这门语言,求大虾解我心中疑惑?谢谢!

仁意 发表于 2012-10-16 09:26:44

我觉得是这样的:
如果是数据总线,要“八根数据总线”才能传递“八位二进制数”,也就是一字节,数据总线宽度16,一次只能传送2b,也就是二字节数据

但是,如果是地址总线,它的目的是寻址,而不是传递数据,所以将一字节看出整体,宽度为24的地址总线可以寻址2^24字节

玩酷子弟lv 发表于 2012-10-16 11:25:55

它是按位算的啊,16位的地址线,能访问的地址是0到2^16-1,访问能力就是2^16.
因为2^10bit 等于1 K。2^16bit就等于64k了。

志华 发表于 2012-10-16 23:25:46

我也是看到这里看糊涂了,不过后来想想应该是这样的。
因为地址总线的那个值跟内存的数据是没关系的,他只不过是表示了内存的一个下标。
内存的最小单位是字节,你地址总线如果有两根那么你就可以表示内存的地址为
1, 2, 3这三个下标。那么就是三个字节。所以地址的一位就代表了内存的一个字节。

lyoal 发表于 2012-10-17 09:56:31

两根地址总线的话,寻址范围应该是2^2次方吧,应该是四个字节才对啊。

lyoal 发表于 2012-10-19 09:41:53

仁意 发表于 2012-10-18 15:13 static/image/common/back.gif
我觉得是这样的:
如果是数据总线,要“八根数据总线”才能传递“八位二进制数”,也就是一字节,数据总线 ...

这么一解释,好似有点明白了。内存是字节进行存储的,CPU通过地址总线的每一次的寻址对应内存就是一个字节。CPU的地址总线或数据总线与内存的存储方式没有关联的话就说的通了。谢谢

补充内容 (2012-10-19 09:43):
现在我想把县赏发下去,悬赏怎么分配?
页: [1]
查看完整版本: 寻址和数据处理的纠结处,请大虾指导吓。谢谢