鱼C论坛

 找回密码
 立即注册
查看: 3408|回复: 7

关于检测点2.2的菜鸟问题

[复制链接]
发表于 2011-10-29 19:57:08 | 显示全部楼层 |阅读模式

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

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

x
题目是有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为____,最大为_______。

小甲鱼给的答案是:
因为题目要求是要物理地址最终为20000H。
我们知道偏移地址最小为0H,最大为FFF0H。   仅靠偏移地址来寻址最多可以寻64KB内存单元,64KB最大值不是FFFF吗?怎么是FFF0?

我们要求段地址能够取到的最小值,即要和偏移地址最大值配合,所以段地址应该为1001H,偏移地址为FFF0H:1001H * 10H + FFF0H == 20000H。
这个段地址不是应该×16么,怎么X10了?
我们要求段地址能够取到的最大值,即要和偏移地址最小值配合,所以段地址应该为2000H,偏移地址为0H。


表示看视频好几遍了,对这个还是半解一知,顺便问一下,20位的地址总线寻址能力是1MB,这个是怎么算的?2的20次方/1024吗?这里的位是指bit还是byte?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 21:08:08 | 显示全部楼层
首先回答比较容易的一个问题
物理地址=段地址*16+偏移地址
因为是用16进制表示 所以书上的意思*16就是满16进1的意思
你可以把16理解为10H
你自己换算一下 10进制16换算为16进制就是等于10H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 21:22:27 | 显示全部楼层
20位的地址总线求寻址能力按公式就是2的20次方就等于1048576。因为内存单元都是以字节存放也就是BTYE
根据1KB=1024B 1MB=1024KB
经过换算 1048576/1024=1024
1024/1024=1MB
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-29 21:30:36 | 显示全部楼层
(2)一数据存放在内存20000H单元中,现给定段地址为SA,若用偏移地址寻到此单元,则SA最小最大各多少?
20000H=(SA*16+EA);EA取值范围:0000H~FFFFH---->SA*16=(20000H~10001H)
则SA为10001H/16~2000H;注意10001H/16取整应+1,则SA最小为1001H,最大为2000H。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-2 19:35:02 | 显示全部楼层
20000H
你把20000H减去FFFFH等于 10001 那还怎么搞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-2 19:44:26 | 显示全部楼层

这就近似了
你总不能让ffff再加一个数吧
只好让它减去一个数,又能误差不是很大
使得2000-[ffff]能被10h整除
所以[ffff]只能是fff0了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-3 10:32:38 | 显示全部楼层
谢谢LS各位,研究研究去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-3 20:09:15 | 显示全部楼层
16是十进制数,16这个数在十六进制下是10H。
20000H-FFFFH=10001,请问这个数你减完之后,怎么分开?五位数的地址是,段地址*16+偏移地址 的。
那么你减到10001之后怎么分解开?
那把FFFFh改成FFF0H之后,20000H-FFF0H=10010H,分解出来就是1001:0,那么取值最大就是FFF0,最小取值就是1001. 1001*16+FFF0H=20000H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 19:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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