| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1240 人关注过本帖
标题:问个问题?
只看楼主 加入收藏
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
 问题点数:0 回复次数:4 
问个问题?
逻辑段的开始地址必须是16位的倍数?
逻辑段的最大长度为64K?
能否解释 一下 谢谢
2008-10-09 23:15
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
[bo][un]newyj[/un] 在 2008-10-9 23:15 的发言:[/bo]

逻辑段的开始地址必须是16位的倍数?
逻辑段的最大长度为64K?
能否解释 一下 谢谢

怎么说好呢?
段地址必须是16位的倍数,这应该是由寄存器造成的.因为,物理地址是20位的,而寄存器是16位的,装不下.只好先右移一位,再装入寄存器.
反过来,将段寄存器中的段地址换算成物理地址前,要先左移一位.所以,必须是16位的倍数,否则这一右移左移的,就把低于16位的给去掉了,最终是寻不到正确的地址.
最大为什么是64K?问题还是在寄存器上.我们有了段地址寄存器,还要有个放偏移地址的寄存器,而放偏移地址的寄存器是16位的,它所能表达的最大值就是64K .
2008-10-09 23:53
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
谢谢了
是不是说 只要是 左移一次 就是16的倍数呢?
2008-10-10 22:25
ONEPROBLEM
Rank: 6Rank: 6
来 自:广西 南宁
等 级:贵宾
威 望:21
帖 子:1569
专家分:349
注 册:2008-7-11
收藏
得分:0 
[bo][un]newyj[/un] 在 2008-10-10 22:25 的发言:[/bo]

谢谢了
是不是说 只要是 左移一次 就是16的倍数呢?

对.16进制移一次就是16的倍数;如果是2进制,移一次就是2的倍数了.类推.
2008-10-10 23:08
邋遢鬼
Rank: 2
等 级:论坛游民
帖 子:29
专家分:94
注 册:2011-5-29
收藏
得分:0 
由于段基址加偏移来表示二十位的地址,一个段最大只能有64K的空间,例如段地址为1234,它的空间是0000H~FFFFH,也就是64k,再多的话就跑到下一个段里了
2011-07-01 11:35
快速回复:问个问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032398 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved