假设有一数据存放在内存20000H单元内,现给定段地址为SA,若想用偏移地址寻址到此单元。则
8086微机系统中,假设有一数据存放在内存20000H单元内,现给定段地址为SA,若想用偏移地址寻址到此单元。则SA应满足的范围是多少?写出具体分析过程。...
8086微机系统中,假设有一数据存放在内存20000H单元内,现给定段地址为SA,若想用偏移地址寻址到此单元。则SA应满足的范围是多少?写出具体分析过程。
展开
3个回答
展开全部
网友采纳的答案是错误的。
--------------------
物理地址 20000H = SA * 10H + 偏移地址
显然,偏移地址应该取最大值,SA 才能达到最小。
那么,偏移地址取最大值:FFFFH,行吗?
代入上述方程,发现,两边的,最末位,不相等。
偏移地址最大值,只能取到:FFF0H,方程才有可能成立。
按照公式:
物理地址 = SA * 10H + 偏移地址
可知,物理地址、偏移地址,两者的最低位,必定是相同的。
当物理地址=20000H,偏移地址也只能是:XXX0H,取最大就是 FFF0H。
于是:
SA = (20000H - FFF0H) / 16=10010H / 16 = 1001H。
--------------------
--------------------
物理地址 20000H = SA * 10H + 偏移地址
显然,偏移地址应该取最大值,SA 才能达到最小。
那么,偏移地址取最大值:FFFFH,行吗?
代入上述方程,发现,两边的,最末位,不相等。
偏移地址最大值,只能取到:FFF0H,方程才有可能成立。
按照公式:
物理地址 = SA * 10H + 偏移地址
可知,物理地址、偏移地址,两者的最低位,必定是相同的。
当物理地址=20000H,偏移地址也只能是:XXX0H,取最大就是 FFF0H。
于是:
SA = (20000H - FFF0H) / 16=10010H / 16 = 1001H。
--------------------
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
16进制和10进制混着算难道不晕吗?
把数据全部转10进制,结果如下:
基址 × 16 + 偏移 = 131072
基址 × 16 = 131072 - 偏移
∵ 偏移 ∈ [0, 65535]
∴ 基址 × 16 ∈ [65537, 131072]
但是因为65537÷16除不尽,结果是4096.0625
并且65537转16进制是10001H,因此最后取值4097
∴ 基址 ∈ [4097, 8192]
转为16进制
基址 ∈ [1001H, 2000H]
把数据全部转10进制,结果如下:
基址 × 16 + 偏移 = 131072
基址 × 16 = 131072 - 偏移
∵ 偏移 ∈ [0, 65535]
∴ 基址 × 16 ∈ [65537, 131072]
但是因为65537÷16除不尽,结果是4096.0625
并且65537转16进制是10001H,因此最后取值4097
∴ 基址 ∈ [4097, 8192]
转为16进制
基址 ∈ [1001H, 2000H]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询