检测点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,相加才可以啊?
(1)00010H+FFFFH=1000FH 我搞不懂你怎么算出等于FF1FH啊
(2) 1001H*16+FFFFH=2000F了和 1001H*16+F000H=1F010H这两个都不等于2000H啊 本帖最后由 topcookie 于 2011-9-27 19:30 编辑
没太明白,应该是2楼说的那样
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!!! kiya 发表于 2011-9-27 23:43 static/image/common/back.gif
哈哈 。理解了0.0thanks!!!
my pleasure !
页:
[1]