零度非安全 发表于 2014-8-22 19:51:34

检测点2.2

检测点2.2

(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH 。
0010H为什么不是00010H??????是第一个0要舍去吗?
有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H 。
最小值还不是用20000H减去偏移地址的最大值FFFFH,然后再除以16,最后得出1000H,这与答案中的1001H不一样啊??????????????????????????





小靚同学Leon 发表于 2014-8-22 20:13:07

1. 感觉过去第一个0是省略了吧。
2. SA(min)=(20000h-EA)/16=2000h-EA/16 =2000h-FFFF/16=2000h-FFFh=1001h   没问题啊

零度非安全 发表于 2014-8-22 20:24:33

小靚同学Leon 发表于 2014-8-22 20:13
1. 感觉过去第一个0是省略了吧。
2. SA(min)=(20000h-EA)/16=2000h-EA/16 =2000h-FFFF/16=2000h-FFFh=10 ...

我是先用20000H减去EA的,然后再除以16.最后得出来的是1000H,而不是你用分配率来做

小靚同学Leon 发表于 2014-8-23 01:42:17

1. 这道题的解法我刚开始确实没怎么注意,后面看了一下确实有点门道,谢谢楼主指出,下面结合别人的说法以及我的理解做出解答,欢迎拍砖。
2.(基础地址=段地址*16,这是王爽老师说的),在EA最大时=FFFFH,我们得出的基础地址值为10001H,不是16的倍数,为了使其成为16的倍数,基础地址的值可为10000H或者10010H(最接近最小值的情况)。
3. 当基础地址的值为10000H时,即使和EA的最大值相加也仅为1FFFFH,根本寻不到20000H;而当基础地址为10010H时,和EA值FFF0H(仍在0~FFFFH范围内)相加即可得到20000H,因此基础地址10010H才是最小值,段地址为10010H/16=1001H。
4. 摘自
http://www.asmedu.net/bbs/pasteinfo.jsppart=1&level=book&kind=1003&qkSg=2&qID=67630&readSg=1。

小靚同学Leon 发表于 2014-8-23 01:44:17

或者你也可以参考一下本论坛其他大牛的答案

http://bbs.fishc.com/thread-34932-1-1.html

碎语 发表于 2014-8-23 01:55:57

俺感觉新手学习这东西好有压力啊,一次性看多了视频之后 发现....

小靚同学Leon 发表于 2014-8-23 01:58:35

碎语 发表于 2014-8-23 01:55
俺感觉新手学习这东西好有压力啊,一次性看多了视频之后 发现....

不急慢慢来,欢迎来到鱼C。

碎语 发表于 2014-8-23 02:00:32

小靚同学Leon 发表于 2014-8-23 01:58
不急慢慢来,欢迎来到鱼C。

牛人啊 我只是随便 发发的...谢谢啦{:1_1:}
页: [1]
查看完整版本: 检测点2.2