欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 944 人关注过本帖
标题:理解能力较差,求大神帮忙解决下!感激不尽啦
等 级:新手上路
帖 子:17
结帖率:66.67%
&&已结贴√
&&问题点数:20&&回复次数:6&&&
理解能力较差,求大神帮忙解决下!感激不尽啦
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。&&& 为什么不是00010H到CPU最大的寻址范围1FFFFH,而是1000FH呢?
(2)有一数据存放在内存 20000H单元中,现在定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是;最小为0001H,最大为2000H。&&0001H是不是CPU寻址范围内最小的值? 最大的为什么不是20000H而是2000H?
段地址加偏移地址怎么会等于20?&&
附件: 您没有浏览附件的权限,请
搜索更多相关主题的帖子:
来 自:红土地
等 级:贵宾
威 望:322
帖 子:11061
专家分:41837
不要以为段地址16位加偏移地址16位之后就会有32位。因为当初INTEL是这样设计的,段地址向左移4位之后再加上偏移地址,组成实际寻找的物理地址。
设段地址为01010
偏移地址为10101
将段地址左移4位加偏移地址
+&&&&&0101
————————————
组成了20位的地址。
[ 本帖最后由 hu9jj 于
21:41 编辑 ]
活到老,学到老!
E-mail:hu-
来 自:红土地
等 级:贵宾
威 望:322
帖 子:11061
专家分:41837
可能是当初的设计师们认为计算机有20位的寻址能力就足够了吧。
活到老,学到老!
E-mail:hu-
等 级:新手上路
帖 子:17
那前面的俩个问题呢?是怎么算的额
来 自:红土地
等 级:贵宾
威 望:322
帖 子:11061
专家分:41837
&&得分:10&
这个问题理解了,稍加思考,前面两个问题应该容易解决的。
1、可以通过运算获得寻址范围。段地址是0001H不变,偏移地址可以从0000H到FFFFH之间变化
寻址的最低地址是:
寻址的最高地址是:
活到老,学到老!
E-mail:hu-
来 自:zzu
等 级:蜘蛛侠
帖 子:302
专家分:1032
&&得分:10&
16位数据总线,20位地址总线决定了如果给定一个段地址(基址),加上偏移地址最多只能寻址64Kb,即2^16!
段基址乘以16加上偏移地址才是实际地址!(16=10H,十进制与十六进制转换)
(1)段地址0001H*10H+偏移地址(0H到FFFFH),所以寻址范围是00010H到1000H
(2)已知物理地址是20000H,由上面公式
设段地址为X,
则X*10H+0H&=20000H,
且X*10H+FFFFH&=20000H
因此1000H&=X&=2000H
来 自:zzu
等 级:蜘蛛侠
帖 子:302
专家分:1032
昨天写错了,应该是1001H&=X&=2000H
版权所有,并保留所有权利。
Powered by , Processed in 0.065378 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved