kiya 发表于 2011-9-27 14:30:20

检测点2.2 求助中 希望懂的给解释下

(1)给定段地址为0001H。仅通过变化偏移地址寻址,CPU的寻址范围为:( )到:( )

注解:小甲鱼:因为偏移地址的范围是0000H到FFFFH这64KB
          段地址*16==00010H
所以,段地址*16+偏移地址==00010H到1000FH.

自己思考:假设偏移地址为X, 根据:偏移地址的范围是0000H到FFFFH。所以X的值为:0000H-FFFFH.
段地址已知道是:0001H。根据:物理地址=段地址*16+偏移地址。 可以得出CUP的寻址范围为:0001H*16+0000H和0001H*16+FFFFH。结果:00010H和FF1FH啊?{:5_94:}(本人看了好几遍视频还是无法得出结论,为什么是00010H到1000FH?)

(2)应朋友要求,将第二题的答案详细解释一下:
因为题目要求是要物理地址最终为20000H。
我们知道偏移地址最小为0H,最大为FFF0H。

我们要求段地址能够取到的最小值,即要和偏移地址最大值配合,所以段地址应该为1001H,偏移地址为FFF0H:1001H * 10H + FFF0H == 20000H。(为什么是1001H*10H?)H不是代表16进制吗?
我们要求段地址能够取到的最大值,即要和偏移地址最小值配合,所以段地址应该为2000H,偏移地址为0H。

(2)有一个数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小:( ),最大:( )?
注解小甲鱼:1001H*16+FFFOH==20000H,2000H*16+0H==20000H.

自己思考:为什么是:1001H*16?为什么不是0?因为偏移地址的范围是0000H到FFFFH,1001H*16+FFFFH 和1001H*16+F000H,这些都可以吗?

写完问题后:为什么是:1001H*16?好像自己想出答案来了。是不是因为偏移地址的范围是0000H到FFFFH。而FFFFH也就是10000H 所以SA最小也得是10000H,相加才可以啊?

seuer126 发表于 2011-9-27 15:55:57

(1)00010H+FFFFH=1000FH   我搞不懂你怎么算出等于FF1FH啊
(2) 1001H*16+FFFFH=2000F了和 1001H*16+F000H=1F010H这两个都不等于2000H啊

topcookie 发表于 2011-9-27 19:09:10

本帖最后由 topcookie 于 2011-9-27 19:30 编辑

没太明白,应该是2楼说的那样

kiya 发表于 2011-9-27 23:43:58

seuer126 发表于 2011-9-27 15:55 static/image/common/back.gif
(1)00010H+FFFFH=1000FH   我搞不懂你怎么算出等于FF1FH啊
(2) 1001H*16+FFFFH=2000F了和 1001H*16+ ...

哈哈 。理解了0.0 {:5_109:} thanks!!!

seuer126 发表于 2011-9-28 16:58:22

kiya 发表于 2011-9-27 23:43 static/image/common/back.gif
哈哈 。理解了0.0thanks!!!

my    pleasure !
页: [1]
查看完整版本: 检测点2.2 求助中 希望懂的给解释下