|
发表于 2006-3-13 13:45:29
|
显示全部楼层
Post by 52violin
"TYPE中的位2是ED位,指示所描述的数据段的扩展方向。ED=0表示数据段向高端扩展,也即段内偏移必须小于等于段界限。ED=1表示数据段向低扩展,段内偏移必须大于段界限。"
向上扩展是不是比如基地址是0f0000h,界限是1000h,那么数据段从0f0000h到0f1000h?所以偏移小于等于界限.但是向下扩展如何理解呢?比如基地址0f0000h,界限是1000h,那么是不是说数据段从0ef000h到0f0000h?但是又如何理解偏移(负的)大于界限(正的)呢?
还有就是,boot时有个0000:7c00的内存地址,还有显存绝对地址是0b8000h,硬盘rom绝对地址是0c8000h,我想详细了解所有的有这些特殊用途的绝对地址,谁能提供一个链接?或者书,文档,手册什么的?
另外,linux的内存布局是怎样的?比如绝对地址哪到哪用于内核,哪到哪用于用户区?
谢谢
对于第一个问题,我的理解是:如果ED=1的话,假设基地址时0f0000h,界限是1000h的话,并且当B为被设置的话,那么数据段的有效范围应该是:0f1000h----0xFFFFFFFF。这时的界限是指不能访问的最后一个地址。这样的偏移就不是负的了。:) |
|