鱼C论坛

 找回密码
 立即注册
查看: 2806|回复: 6

[争议讨论] 关于汇编第二章检测2.2,偏移地址寻址范围:0H~FFF0H,应该是0H~FFFFH吧

[复制链接]
发表于 2012-3-21 10:09:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关于汇编第二章检测2.2,偏移地址寻址范围:0H~FFF0H,应该是0H~FFFFH吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-21 14:10:45 | 显示全部楼层
我也有同样的疑惑,就不重复发帖了,坐等师兄解惑,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-21 14:21:11 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-3-21 14:25 编辑

20000h
段地址+偏移地址=物理地址
偏移地址的范围最大是 0000H--FFFFH
所以
段地址(sa)*(16)+0000H=20000h 这个是段地址最大时 sa=2000  这个就不用多说了 )*(16)这个要换成16进制的10H (这要补充一点 书上凡是数字后面没有H的都是10进制数要自己转换成16进制然后在数字后加H参与运算)
段地址(sa)*(16)   + ffffh=20000h   这个是段地址最小时  20000h-ffffh=10001/10h=sa=1000.1  这里的0.1四舍五入掉(你应该没有见过什么时候段地址带小数点的吧!其实我也没见过!~)所以最小应该是1000     但是 , 1000*10H+FFFFh又不等于20000h 所以 最小应该是1001

这个偏移地址最大是多少?

当然是FFF0h咯!~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-22 19:46:26 | 显示全部楼层
1000*10H+FFFFH小于20000H所以min(sa)=1001,此时max(EA)=FFF0H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-23 02:39:08 | 显示全部楼层
本帖最后由 我还是不懂 于 2012-3-23 02:41 编辑

我也是很疑惑, 刚得到答案,问题就是没注意书本上的一句话,段的起始地址必须是16的倍数,20000H减去最大的偏移地址必须是16的倍数,那么20000H-FFFFH=10001H不满足是 16倍数那怎么办呢,只能减小偏移,直到FFF0H,得到的段地址为(20000H-FFF0H)/16=1001H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2012-3-27 04:02:52 | 显示全部楼层
做这题的时候,我们应该是用偏移地址来满足段地址,而不是先算段地址,应该取偏移地址的最小值和最大值来算出出段地址(SA),这样比较容易理解,如果先算段地址后算偏移地址的话很难理解,所以段地址要和偏移地址要配合运算。:lol
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-27 04:05:35 | 显示全部楼层
之前都没有真正的投入到这个问题中,现在才得出这样一个结论.....我们在做监测点的时候都应该要深入的去探讨其中的原理,这样才能更好的学习下去!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-28 22:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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