鱼C论坛

 找回密码
 立即注册
查看: 3142|回复: 3

小白要发问关于监测点2.2中的问题

[复制链接]
发表于 2011-4-7 20:15:23 | 显示全部楼层 |阅读模式

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

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

x
假鱼师傅,各位大虾师兄弟们,小的是个刚学习汇编的小虾米。我的问题是监测点2.2中的第(2)题。
【有一个数据存放在内存20000H单元中,现给定段地址SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为__________,最大为__________】.
SA*16(10H)+FFFFH=20000H
SA*16(10H)=20000H-FFFFH=10001H
SA=10001H/16(10H)=1000

这样算法应该没错吧,但是答案确实是1001,我的问题就是为什么结果是这个1001而不是1000?我在网上找了很多的相关问题的解释,但解释的结果实在太高深了太笼统了。可能是我的IQ太低了真的理解不了网友们给出的解释。所以今天求各位大虾师兄弟们给个通俗易懂的解释好吧,小的在这先谢谢了!3Q3Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-7 20:35:14 | 显示全部楼层
这样说吧,如果段地址是1000H的话,它的寻址范围是10000H~1FFFFH,无法寻址到20000H单元吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-8 00:08:43 | 显示全部楼层
楼上的大虾师兄我先谢谢你,你的回答结果是没错的,但原理上还是不明白怎么换算过来的。
SA=10001H/16(10H)=1000
这样算法应该没错吧,但是答案确实是1001,我的问题就是为什么结果是这个1001而不是1000?我在网上找了很多的相关问题的解释,但解释的结果实在太高深了太笼统了。可能是我的IQ太低了真的理解不了网友们给出的解释。所以今天求各位大虾师兄弟们给个通俗易懂的解释好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-9 16:45:40 | 显示全部楼层
(1)给定段地址为0001H,仅通过变化偏移量地址寻址,CPU的寻址范围为多少到多少?
解:CPU的寻址范围为 0001H*16+0 到 0001H*16+FFFF
即寻址范围为 00010H~1000FH

(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:最小为多少?最大为多少?
解:要解答此题 我们可以根据 物理地址=段地址*16+偏移地址 的公式 列出两个方程 SA*16+0=20000H   SA*16+FFFF=20000H
第一个方程SA的解 则为SA的最大值 第二个方程SA的解 则为SA的最小值
解方程:
SA=2000H
(1)SA*16+0=20000H
SA*16=20000H-0
SA*16=20000H
SA=20000H/16(10H)
SA=2000H
(2)
SA=1001H
SA*16+FFFFH=20000H
SA*16=20000H-FFFFH
SA*16=10001H
(因为基地址的起始地址必须是16的倍数 即SA*16=10001H不满足要求 ,所以这里的10001H 我们取值为10010H)
SA*16=10010H
SA=10010H/16(10H)
SA=1001H
所以SA应满足的条件是最小值为1001H 最大值为2000H
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-3-29 17:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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