对于监测点2.2还是不解~~~
本帖最后由 loop 于 2011-6-19 01:05 编辑监测点2.2,第二题,SA最小应满足的条件。刚看了解释还是不懂,哪位大侠能再详细的解释下{:5_111:} {:5_111:} {:5_111:} 借花献佛呀
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为多少?最大为多少?
解:要解答此题 我们可以根据 物理地址=段地址*16+偏移地址 的公式 列出两个方程 SA*16+0=20000H SA*16+FFFF=20000H
第一个方程SA的解 则为SA的最大值 第二个方程SA的解 则为SA的最小值
解方程:
SA=2000H
(1)SA*16+0=20000H
SA*16=20000H-0
SA*16=20000H
SA=20000H/16(10H)
SA=2000H
(2)
SA=1001H
SA*16+FFFFH=20000H
SA*16=20000H-FFFFH
SA*16=10001H
(因为基地址的起始地址必须是16的倍数 即SA*16=10001H不满足要求 ,所以这里的10001H 我们取值为10010H)
SA*16=10010H
SA=10010H/16(10H)
SA=1001H
所以SA应满足的条件是最小值为1001H 最大值为2000H
lihua2556672 发表于 2011-6-8 07:58 static/image/common/back.gif
因为题目要求是要物理地址最终为20000H。
我们知道偏移地址最小为0H,最大为FFF0H。
偏移地址最大FFFF
段地址要为16(10H)的倍数,
20000H - FFFF = 1 0001H
20000H - FFFE = 1 0002H
20000H - FFFD = 1 0003H
20000H - FFFC = 1 0004H
20000H - FFFB = 1 0005H
20000H - FFFA = 1 0006H
(这些的值都不是16的倍数)
直到.......
20000H - FFF0 = 1 0010H
这时10H满足16(10H)的倍数了
物理地址减去最大偏移地址除以16(10H)等于最小段地址
20000H - FFF0H/ 10H = 1001H
监测点2.2 这个问题论坛里都有过的哦!提问先要搜一下论坛! 可以设sa:xxxx;偏移地址为:yyyy。
sa左移后得:xxxx0;
xxxx0
yyyy
20000
最后的一个y肯定是0,若前三个y都取0,则偏移最小,sa最大是2000,
十六进制最大为f,若前三个y都取f,则偏移最大,sa最小,这时,要凑到20000,要有进位,所以最后个x为1,中间两个x为0因为前面有进位,而到最高位的x是个1就行了,加上前面的进位刚好是20000.这样一分析,就可看出:sa最小为1001,最大为2000. 这个论坛的人都很热心呀 呵呵 ·很有学习的感觉! 5 - 3 = 2
求出 2 的最大值
2 + 3 = 5
你这样理解啊
就是套用公式的
2000*16H-最大偏移地址 FFFF = 最小值
页:
[1]