yjiaitfk 发表于 2012-2-11 23:57:03

新手求解

地址:10000H~100FFH的内存单元组成一个段
其起始地址(基础地址)为:10000H,段地址为:1000H,为什么大小是100H
同样
地址段:10000H~1007FH、10080H~100FFH这两个由内存单元组成的两个段,
其起始地址(基地址)分别为:10000H和10080H,段地址分别为:1000H和1008H,
为什么大小都为80H?

求解。。。

非同凡想 发表于 2012-2-11 23:57:04

{:1_1:}首先你必须弄清楚段的概念,内存本没有分段。
为什么非得分段呢?因为CPU访问内存时,我们必须告诉CPU需要读写的内存地址在哪里,CPU没有思维,我们指哪打哪,你不告诉他地址,不告诉他地址内存储的是什么类型(数据还是指令……),它什么都不会做!
那么我们用什么方式告诉CPU需要访问的内存的物理地址呢?答案是:使用CPU可以识别的方法。那么这个方式不是我们可以改变的,所以只好记住:用段地址X16+偏移地址的方式。
经过以上问答,很明显“段”的概念已经出来了。“段”是为了方便我们读写内存单元而设计的,但必须遵循最大长度不超过64KB即可,因为8086CPU寻址能力为16位。
至于楼主所谈的容量大小,是我们自己来定义的,还是上面的老话:必须遵循最大长度不超过64KB即可,因为8086CPU寻址能力为16位。
综上,不要盯着段的容量大小不放,你看着不顺心,盖掉它……你的段你做主!

小军 发表于 2012-2-12 00:24:37

:L:L你把视频多看几遍。就懂了。很钻牛角尖的问题。看不明白。。。

yjiaitfk 发表于 2012-2-12 10:10:58

非同凡想 发表于 2012-2-12 00:55 static/image/common/back.gif
首先你必须弄清楚段的概念,内存本没有分段。
为什么非得分段呢?因为CPU访问内存时,我们必须告诉 ...

呵呵,明白了
谢谢啦{:1_1:}
页: [1]
查看完整版本: 新手求解