鱼C论坛

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

第2章 寄存器 检测点2.2 (2)问题的纠结

[复制链接]
发表于 2013-4-10 01:20:06 | 显示全部楼层 |阅读模式

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

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

x
有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为 1001H ,最大为 2000H
SA=(20000H-FFFFH)/10H(个人理解直接用16进制的10,代替10进制的16用计时器的时候方便,不知道对不?)
    =10001H/10H
    =1000
答案是错的

老师对的答案
2000H-FFFFH/16
我就是想问这个2000H是这么取出来的,能详解下?不然老在这里打圈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-10 08:10:28 | 显示全部楼层
淡定,淡定,淡定……
你除以10h啥意思??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-10 10:32:49 | 显示全部楼层
sa*16+ip=20000
最小值:其中ip最大为ffff,此时sa*16=10001,因为是求最小值,除去16后,sa取1000的话无法相加得到20000,so,sa最小值只能是1001。
最大值:ip最小为0000,sa最大2000

用这个思路就没问题了。别陷在数学思维里……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-10 11:22:14 | 显示全部楼层
楼主的思路不对,但是又不好说?这个还真麻烦!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-4-10 13:23:21 | 显示全部楼层
谢谢,各位鱼油的回答,jsanwb的提点,
你除以10h啥意思??这个只是在计时器上都用16进制计算方便,(10进制16=16进制10)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-4-10 15:13:57 | 显示全部楼层

弄明白了就行。当时我也是纠结这个问题很长时间。 其实我们只要想其实EA最大值不一定是FFFFH,所有疑惑就全解开了。经过计算其实这道题里EA最大值只能到FFF0H而已,那SA就是1001H喽。因为如果EA是FFFFH的话,SA=(20000H-FFFFH)/10H=10001H/10H≈1000H,检查的时候会发现,1000H:FFFFH指向的是1FFFFH的地址,并不是想要20000H,而EA已经是最大值了,所以,只能把SA增加一个最小单位,也就是1,那SA=1001H,EA=20000H-1001H*10H=FFF0H,也就得到想要的地址了,所以SA最小是1001H,EA最大是FFF0H。。。。不知道我说的明白不明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-4-10 18:54:38 | 显示全部楼层
谢谢,不在纠结这个问题了,应该是老师讲的必须转10进制下整除16,不产生余数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-7 20:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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