|
发表于 2012-3-20 23:42:50
|
显示全部楼层
满天飞 发表于 2012-3-20 23:28
我也想问这个,我感觉可能因为段地址要乘16,最后一位变成0的原因,偏移地址必须最后为0才能保证20000最后是 ...
先套用公式,段地址*16+偏移地址=物理地址
那么我们已经知道了物理地址为20000H
SA = 20000 - 0000H / 16 = 2000H ;最大值
SA = 20000 - FFFFH / 16= 10001H :最小值
那么这里就出问题了,10001不能被16整除,也就是段地址不能满足*16+偏移地址= 20000H
所以偏移地址就要发生变化来满足段地址*16+偏移地址=20000H
20000H - FFFF = 10001H
20000H - FFFE = 10002H
20000H - FFFD = 10003H
20000H - FFFC = 10004H
20000H - FFFB = 10005H
20000H - FFFA = 10006H
直到.......
20000H - FFF0 = 10010H
这时10010H满足16的倍数了
物理地址减去最大偏移地址除以16等于最小段地址
20000H - FFF0H / 16 = 1001H ;最小值
所以最小值是1001H,最大值是2000H
注意上面的16是10进制的数,运算时要转化成16进制,也就是10H。 |
|