关于偏移地址变化范围的问题(论坛有你真精彩,谢谢各位同学了)
本帖最后由 汇编必须的 于 2011-5-24 12:09 编辑检测点2.2 第二题
因为偏移地址变化范围是0~ffffh
那么我的算法是 :
段地址最小=(物理地址-偏移地址最大变化范围)/10(16进制)
=(20000-ffff)/10=1000
小甲鱼老师=(20000-fff0)/10=1001 (为什么这里取值fff0呢?)
段地址最大=(物理地址-偏移地址最小变化范围)/10(16进制)
=(20000-0)/10=2000
看到小甲鱼老师的答案是1001 应该是偏移地址取值不一样,求解,谢谢了 汇编必须的 发表于 2011-5-23 13:59 static/image/common/back.gif
检测点2.2 第二题
因为偏移地址变化范围是0~ffffh
如果按照你上边的计算方法。。最小段地址为1000的话。。那么偏移地址要10000H才可以找到内存地址为20000H的内存单元,而在8086CPU中这个是不被的允许,所以最小段地址要在这里+1,也就是你看到最大偏移地址去fff0而不是ffff的原因了 回1楼的朋友,“也就是你看到最大偏移地址去fff0而不是ffff的原因了” 如果是这样理解的话 为什么检测点第一题 用的是10h+ffff而不是10h+fff0呢你说的1000+1 还算是可以看明白 对于偏移地址的变化范围0~ffff 貌似是书上写的,求解 http://bbs.fishc.com/forum.php?mod=viewthread&tid=1868&page=1#pid12009
请看这里。这里有解答的答案。 论坛有你真精彩,完全明白了
看来学习还真的有这个钻研劲,虽然这是个小问题,但是细节很重要 汇编必须的 发表于 2011-5-23 16:23 static/image/common/back.gif
回1楼的朋友,“也就是你看到最大偏移地址去fff0而不是ffff的原因了” 如果是这样理解的话 为什么检测点第一 ...
加和减的算法是不一样的,因为你必须保证段地址是整数,上面已经说了,如果偏移地址是ffffH的话算出的段地址1000H是不被允许的,所以偏移地址最大的值是(20000H-1001H×10H)=fff0H,而不是ffffH或者别的什么
页:
[1]