注册 登录
编程论坛 汇编论坛

王爽 检测点2.2疑惑 1001好像不行,1000明显不行,结果是

a62ju9 发布于 2012-08-19 05:30, 501 次点击
有一段数据存放在20000H内存单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为
                                                                                                  最大为2000H
这道题很纳闷,偏移地址的变化范围是0H——FFFFH,最大好理解,段地址最大偏移地址就最小,根据SA*16 + 偏移地址 = 20000H来计算,SA最大应该是2000H,但SA最小偏移地址最大时,SA*16 + FFFFH = 20000H,算到的SA*16=10001H,这个东西要怎么写,高手求解,谷歌了老半天了不得其解啊。
1 回复
#2
a62ju92012-08-19 05:45
运气好,临睡时候找到答案了

物理地址=SA*16+EA  
EA的变化范围为0h~ffffh  
物理地址范围为(SA*16+0h)~(SA*16+ffffh)  
现在SA=0001h,那么寻址范围为  
(0001h*16+0h)~(0001h*16+ffffh)  
=0010h~1000fh  

物理地址=SA*16+EA  
20000h=SA*16+EA  
SA=(20000h-EA)/16=2000h-EA/16  
EA取最大值时,SA=2000h-ffffh/16=1001h,SA为最小值  
EA取最小值时,SA=2000h-0h/16=2000h,SA为最大值
1