鱼C论坛

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

关于监测点2.2的问题

[复制链接]
发表于 2012-7-1 09:55:31 | 显示全部楼层 |阅读模式
1鱼币
有一组数据放在内存20000H单元中,现在给定段地址为SA,诺想用偏移地址寻到此单元 则SA应满足的条件是 最大值 :  最小值
小鱼老师给的答案是  1001H*16+FFF0H=20000H  请问  这里为什么是FFF0H 而不是FFFFH?
范围不是0~FFFFH 吗

最佳答案

查看完整内容

段地址的范围确实是0~0ffffh 但并不是所有的段地址都能寻址到20000H单元,比方说段地址为1000h那么段地址乘16等于10000h,偏移地址最大为0ffffh,加上0ffffh后就是1ffffh单元的地址,不能再大了,这样就找不到20000h这个单元,同样,当段地址大于2000h的时候,乘16就大于20000h了,无论偏移地址是多少也都找不到20000h这个单元。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-1 09:55:32 | 显示全部楼层
段地址的范围确实是0~0ffffh 但并不是所有的段地址都能寻址到20000H单元,比方说段地址为1000h那么段地址乘16等于10000h,偏移地址最大为0ffffh,加上0ffffh后就是1ffffh单元的地址,不能再大了,这样就找不到20000h这个单元,同样,当段地址大于2000h的时候,乘16就大于20000h了,无论偏移地址是多少也都找不到20000h这个单元。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-1 12:22:54 | 显示全部楼层
段地址 乘 16 加 偏移地址=物理地址 10010H + fff0H=20000H 因为说有一组数据要放在内存20000H单元中 然而段地址设为1001H 所以偏移地址要设为FFF0H才能指向20000H处 如果你设为FFFFH指向的就是2000F处了  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-2 12:47:47 | 显示全部楼层
1:这是由于段地址只能为16的倍数引起的。如果用地址减去最大偏移地址即20,000H-FFFFH=10,001H,结果改为段地址要除以16,为了寻址到20,000H,没办法只好进1取1001H了。
2:观察1可发现,向前进1是因为偏移地址的第4位引起的,不管第4位为取何值,结果都是1001H,当第4位为0时,没有进位发生,我想大概就这样写成20,000H-FFF0H=1001H*16了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-7 12:40:11 | 显示全部楼层
顶楼上 分析的比较透彻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-6 21:16:09 | 显示全部楼层
好久没来了 sorry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 14:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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