检测点2.2的(2)
题如下:数据存放在20000H单元中,现给定个SA,若想用偏移地址寻到此单元,则SA应该满足的条件是:最小为_____,最大为____。鱼老师说 偏移地址最小是0H,最大是FFF0H。 偏移地址的范围不是最小为0H,最大为FFFFH吗?为什么又要说为FFF0H呢?
不是应该这么解么:X*10H+Y=20000H 求 X和Y的值出来吗?
X=(20000H-Y)/10H
Y应该是个10H的倍数 所以 他得偏移地址的取值应该说成 是一个(0H到FFFH)*10H 数的集合 应该有 (1+FFFH)个这样的集合!
不知道我说的对不对 请各位大鱼们指正!!!!!!
>>鱼老师说 偏移地址最小是0H,最大是FFF0H
不不,鱼老师没这麽说,老师这麽写只是因为在段地址最小的状况,
偏移地址提供FFF0H即可指向目标20000H
这麽考虑:
段地址=1000H,
这个时候,所能指向的地址最大为?
1000H*10H+FFFFH=1FFFFH
段地址加上1,1001H呢?
1001H*10H+FFFFH=2000FH.
但是我们想要到达的地方是20000H,所以鱼老师才写成
1001H*10H+FFF0H=20000H.
>>Y应该是个10H的倍数...是一个(0H到FFFH)*10H 数的集合
>>应该有 (1+FFFH)个这样的集合
没错,而你的结论跟老师答案也是吻合的,共1+FFFH=1000H个
老师解答:最小为1001H,最大为2000H,这之间有几个段呢?
2000H-1001H+1=1000H
(加1是为了算上本身,例如说,1到5有几个整数? 5-1 +1 =5个.)
依照你的公式
Y=0H~FFF0H(所有16的倍數)
所以,X=2000-Y/10=(2000-0)H~(2000-FFF)H=2000H~1001H
所谓的不谋而合,恩. 还是不懂啊! 我也刚做到这里。一开始和楼主一样的答案。 看了2楼的回复明白了。 看来不是什么都是*10H 给定数值(20000H)的就要倒过来做是不是相等了。我反正还是弄最大偏移做的。 1000H*10H+FFFFH=1FFFFH
20000H -1FFFFH=1 1000H+1=1001H 反正我是这样理解的 谢谢2楼的解答,终于明白为什么了, 头大好难 进来学习下!!1希望能弄懂!!1{:1_1:}
页:
[1]