回 帖 发 新 帖 刷新版面

主题:[讨论]寻址问题

讨论 (8086中)有一段数据存放在内存20000h单元中,先给定段地址为sa,若用偏移地址寻到此单元,则sa应满足
最大? 最小?
我的想法是 sa*16+偏移地址=20000h
偏移地址16位 寻址范围0000H---FFFFH
所以sa*16=20000h(1)
sa*16=10001h(2)
(1)sa=2000
(2)哪个最小的求:我不明白起使地址要为16的整数倍怎么处理
我说的不明白,希望大家能懂我的迷惑!!!
帮我解答
附:正确答案是2000h  1001h

回复列表 (共3个回复)

沙发

对于16进制“起使地址要为16的整数倍怎么处理”,就是在16进制数后面补一个0。
不知道我回答的是不是你的疑惑?

板凳

LZ是想问:理论上算出的最小段地址的值应该是1000.1h,但不知如何使1000.1h这个值成为合法的段地址?
我想LZ可能和一个段地址的寻址范围搞错了,虽然一个段地址的寻址范围为0000h~FFFFh,但是这个并不是说同一个物理地址就能被找到FFFFh次。原因很简单,段地址要为16的整数倍。所以1000.1h这个理论段地址是不可能用段地址*16算出,算出的只可能是,个位数为0的整数,所以最小值不可能是1000.1h!也就是说1000.1h~1000.Fh这15个理论上的段地址是无用的,所以同一个物理地址能被找到的最大次数是FFFFh-000Fh=FFF0h次!
所以,2000(SA为最大值):0000,如果SA大于2000h则找不到物理地址20000h;
   1001(SA为最小值):FFF0,如果SA小于1001h则也找不到物理地址20000h。

3 楼


楼上说的对~~

同意。

我来回复

您尚未登录,请登录后再回复。点此登录或注册