鱼C论坛

 找回密码
 立即注册
查看: 3769|回复: 5

[迷途问路] 监测题2.2第二题

[复制链接]
发表于 2012-3-2 22:37:56 | 显示全部楼层 |阅读模式
1鱼币
监测题2.2中的第二题。
有一数据存放在内存20000H单元中,现给定地址段SA,若想用偏移地址寻到此单元,则SA应该满足的条件是:最小()最大()
偏移地址的范围是0000H--FFFFH,因此,最小的偏移量是0000H,最大的偏移量是FFFFH。
因为(段地址H×10H+偏移地址H=物理地址H)
那么(最大段地址H×10H+最小偏移H=物理地址H)或(最小段地址×10H+最大偏移H=物理地址H)
最大SA=未知数
最小偏移=0000H
物理地址=20000H
逆算过来(20000H-0000H÷10H=2000H)结论:SA最大为(2000H)。
最小SA=未知数
最大偏移=FFFFH
物理地址=20000H
逆算过来(20000H-FFFFH÷10H=1000H)结论:SA最小为(1000H)。
这道题小甲鱼老师在计算最小SA的时候,最大偏移用的是FFF0H,我反复看了数遍教程视频,也没发现这里为什么要用FFF0H,请求高手详细解答,要详细解答,是什么原因????
万分感谢……
      敬礼……

最佳答案

查看完整内容

首先问提问者,最大的会求吗?其次,我认为刚开始,我被最小值困惑住了!我来说说的歪理,希望对你有用,呵呵! 因为偏移地址的范围是0000H--FFFFH,因此,最小的偏移量是0000H,最大的偏移量是FFFFH。说的没有错。 也就是说我们可以认为 SA*16+0000=20000求出SA的最大值。 SA*16+FFFF=20000,求出最小值,但是我想提醒的是,小甲鱼老师的话说过,就是我们要求的SA肯定是16的倍数,这样也就是说偏移地址并不是给定的范围就必须 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-2 22:37:57 | 显示全部楼层
首先问提问者,最大的会求吗?其次,我认为刚开始,我被最小值困惑住了!我来说说的歪理,希望对你有用,呵呵!
因为偏移地址的范围是0000H--FFFFH,因此,最小的偏移量是0000H,最大的偏移量是FFFFH。说的没有错。
也就是说我们可以认为  SA*16+0000=20000求出SA的最大值。
SA*16+FFFF=20000,求出最小值,但是我想提醒的是,小甲鱼老师的话说过,就是我们要求的SA肯定是16的倍数,这样也就是说偏移地址并不是给定的范围就必须要用上,所以你按照SA*16+FFFF=20000求出来的并不是整数,所以我们有理由把偏移地址的范围进行可能的缩小范围,这样当偏移地址为FFF0时,即SA为1001H时为最小值!
希望对你有帮助{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-3 13:01:54 | 显示全部楼层
应该只用2000H-fff就可以得出最小的段地址了,因为SA的最在编移地址是ffff。用2000h*16-ffff=10001就可以得出物理地址了,又因为算的是SA,是段地址,最大偏移就只有FFF0,所以就用到了20000H-  FFF0=10010,不要最后的0后就是最小的可以偏移的段地址了,SA=1001。好像所有的段地址都是16的倍数,就不要为这个纠结了,(逆算过来(20000H-0000H÷10H=2000H)结论:SA最大为(2000H)。
10H那就不叫偏移的了,应该是F`````){:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-3 19:50:08 | 显示全部楼层

转换成二进制,没有必要了!当时我做这个题目的时候,SA*16+FFFF=20000,你会发现这样算出来的SA是多少??
这样吧,我们逆运算SA*16就是在SA后面添上一个0 ,也就是*16,那么我们就知道!@#$0+FFFF=20000,不知道,这一步,能不能理解!然后你就明白要使能得到20000这个值,那么我们就必须在$位置进行这样的计算,那就是$+F=0,并且向前进一位,以此类推,所以我们 !@#$ 就应该为1001,也就是这个里面要求的最小值,希望我这样说你能理解!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-4 18:17:25 | 显示全部楼层
.静待彼岸 发表于 2012-3-3 19:50
转换成二进制,没有必要了!当时我做这个题目的时候,SA*16+FFFF=20000,你会发现这样算出来的SA是多少? ...

我知道是怎么回事了,我用的系统的计算器,10001H÷10H实际结果是1000.1H,而计算器上没这个小数,成了1000H。
请问下,有什么计算器可以算出小数点的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-7-24 22:13:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 19:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表