|
发表于 2011-5-15 16:28:51
|
显示全部楼层
本帖最后由 lxbwyr 于 2011-5-15 16:30 编辑
我帮你分解一下。看看你能不能理解。
首先来说一下在8086CUP中一个段的偏移值范围是0H-FFFFH。
一般来讲一个段的偏移地址的取值最大是FFFFH,这是没有错的。
但是这里被20000H这个值约束了这个最大的取值。如果偏移值最大是FFFFH,那么SA可取最小值20000H - FFFFH = 10001H。但是段地址要求是16进制的倍数(比如可以是10000或10010或10020,也就是说最后一位应是0 【16的倍数】。很重要
那么10001H这个值 就能不做为段地址了。那比这大一点的数10002H-10005H……10010H……这些值只有10010H能是16进制的倍数,且是倍数中的最小值 。符合做为段地址的取值要求
10010H变成段地址就是1001H 【16的倍数】。很重要
那么20000H-10010H=FFF0H.
这样就得出偏移地址的最大值为什么不是FFFFH,而是FFF0了。
:):)
|
评分
-
查看全部评分
|