|
主题 : : 检测点 2.2 遇到的问题 [待解决] |
回复[ 9次 ]
点击[ 520次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-07-28 15:16 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-17 17:25 |
检测点 2.2 的第2题 数据存放在内存20000H单元中,问段地址SA需要满足的条件.
问题研究了半天没有头绪,后参考了一下答案 1001H--2000H
自己研究了一下,最大的2000H很容易看懂,但是最小的1001H是怎么来的呢?越看越迷茫
最后动手在计算器上计算了一下 20000-FFFF=10001 得出结论 1000*16+1=10001 得出结果1001H
通过此题明白,自己的算法和逻辑都不过关,没有参考答案有些题跟本就弄不明白......
有谁有其他的学习经验指点一下 | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-07-28 15:21 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-17 17:25 |
本人希望大家能把自己的学习心得和遇到的难题的解决思路发上来,供其他人学习使用 | | |
|
|
|
|
[第2楼]
[ 回复时间:2008-07-28 16:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
恩,我开始做这个题得时候觉得还可以,在求最大最小值的题的时候,自然的把他们归到了数学上去了。
这本书得检测题和实验,除了像这个题得几个题目外,例如检测题1.1和这个,其他得都可以自己用后面学到得debug等工具得到正确的答案。并且没有答案,我们往往会多思考,同时得到的也越多。 | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-07-31 13:15 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-07-24 16:27 |
|
|
|
|
|
[第4楼]
[ 回复时间:2008-08-19 11:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-16 22:05 |
我在计算最小值的时候,是这样的,虽然答案是对的,但方法有点不对,特写出来
20000H-FFFFH=10001H,10001H/16H=1000H,但1000H+FFFFH=1FFFFH呀,怎么也寻不到20000H,于是在1000H后再一个1,就是1001H。
有点笨,见笑! | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-08-19 11:12 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-16 22:05 |
|
|
|
|
|
[第6楼]
[ 回复时间:2008-08-19 11:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-16 22:05 |
但LZ对“20000-FFFF=10001 得出结论 1000*16+1=10001 得出结果1001H ”的解释也还是不太明白,偶现在的理解是这样的:
10001——是最小值,是一个物理地址,是基础地址+偏移量得出来的,是一个20位的地址,所以也可写成10000:1;那么它的十六位地址是10000H/16H+1,得到1001H。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-09-04 15:07 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-09-03 00:18 |
首先应明白:段地址的加减1,相当于实际定位的内存地址前进或后退16个存储单元
其次由20000-FFFF=10001 得到基础地址的最小值,即段地址*16 >= 10001
所以满足上述不等式的段地址最小值为1001
不知道我的解释行不行? | | |
|
|
|
|
[第8楼]
[ 回复时间:2008-09-23 12:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:0
注册日期:2008-03-20 18:42 |
1:偏移地址为0的时候,段地址为最大,所以20000偏移一位=2000H
这个好理解
2:由于段之间存在一个64KB的限制,所以一个段的范围就限制在了0-FFFF之间
20000-FFFF=1001H=65537
这个结果大于了FFFF(65535),显然不符合.
由于物理地址是由基础地址(段地址*16)和偏移地址构成的,这里就存在一种规则下,随意的搭配
比如1+3=4 2+2=4..
要保证段地址为最小,也就是需要要求偏移地址越大
当偏移地址为FFFF的时候,结果不符合
一个段的值不得超过64KB,也就10000H(655536)这个时候由65536-16,求出的值,既小于FFFF,又是属于最大的偏移地址,所得的就是FFF0
20000H-FFF0H=10010H | | |
|
|
|
|
[第9楼]
[ 回复时间:2008-09-24 13:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-08-22 16:10 |
|