鱼C论坛

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

关于偏移地址寻地址的问题,希望各位大大能快点帮我解决!

[复制链接]
发表于 2012-6-7 23:34:35 | 显示全部楼层 |阅读模式

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

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

x
汇编语言》- 检测点2.2
第一题里---给定段地址为0001H,仅通过变化偏移地址,CPU的寻址
范围为 00010H 到 1000FH
我纠结了好久,又重复看了视频,我还是不明白00010H 到1000FH 的1000FH是
怎么得出来的,哎,,真是纠结啊,脑疼。
之后又看了这道题,更加纠结
当段地址给定为多少,CPU无论怎
么变化偏移地址都无法寻到20000H单元?
答:因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H
     时CPU都无法寻到。
怎么是大于2000H就无法寻到了,我越想越不明白,希望各位大大能详细的分析下题目的结果。以便我这个
小小小的菜鸟好理解呀!!!
谢谢哈!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-8 17:33:36 | 显示全部楼层
仔细揣摩了一下你为什么不懂!!!题目给出了一个条件,仅通过偏移地址寻址,偏移寄存器是16位的,寻址能力是64K,物理地址=段地址*16+偏移地址,则得出物理地址为00010——1000FH,即CPU的寻址范围。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-9 00:47:40 | 显示全部楼层
本帖最后由 283765087 于 2012-6-9 01:13 编辑

第一题里---给定段地址为0001H,仅通过变化偏移地址,CPU的寻址
范围为 00010H 到 1000FH
0001X16=00010
仅通过变化偏移地址(再怎么偏移也不会超出2^16次方 65535=FFFFH)
00010+FFFFH=1000FH
寻址范围为:00010-----1000F

2.
这个问题也纠结我了好久
已知物理地址=20000
然后考虑偏移地址  偏移地址最大是FFFF
那么   
20000(物理地址)减FFFF(偏移地址)=10001(段地址)
得出偏移地址是FFFF段地址是10001
但是教程说了段地址的起始要是16的倍数 这个10001显然是不合适的
所以刚好适合16倍数的最小的段地址是10010
20000-10010=FFF0  

其实我也是新手来的 1星期不到  所以也不知道解释的对不对  我们以后互相学习  共同进步


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-10 21:01:45 | 显示全部楼层
10010+FFF0=20000
20000-FFF0=10010
20000(物理地址) 减去 段地址(10010) 错了
物理地址-偏移地址=段地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-23 15:33:09 | 显示全部楼层
我想问一下  怎么说偏移地址最大值是FFF0H???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-23 20:15:08 | 显示全部楼层
偏移地址16位,变化范围为0H—FFFFH。题目中要访问的是内存20000H的单元,偏移地址的值不是固定的(范围是固定的,就拿16位来讲),偏移地址的值取大了,会出现访问不到20000H单元,因为计算SA要取整,SA*16+FFFFH=20000H,得SA=1000H,再SA*16+FFFFH=1FFFFH<20000H(此时偏移地址取最大都访问不到20000H单元),所以应该缩小偏移地址求SA。看完之后希望你认真思考一下,希望你能弄懂?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-14 19:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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