当前位置: 代码迷 >> 汇编语言 >> 汇编 保护方式下的 实际的段界限 一个有关问题
  详细解决方案

汇编 保护方式下的 实际的段界限 一个有关问题

热度:454   发布时间:2016-05-02 04:32:19.0
汇编 保护方式下的 实际的段界限 一个问题。
当段界限以4k字节为单位时,实际的段界限 limit = limit * 4k + 0fffh,为什么要加上0fffh呢,这个有点想不明白,不是直接limit*4k字节吗 ? 
------解决方案--------------------
就是这么定义的,描述符的G位为1的时候,粒度是4K,那么20位限制如何表达4GB限制呢,显然是1048575 * 4096 + 4095,所以粒度是4K的时候,限制为0表示限制为4K,而不是0K,这跟粒度为1字节的时候不一样。

------解决方案--------------------
实际使用的段界限=(描述符中的段界限值+1)*0x1000-1
这里0x1000即为4K,为什么要+1,因为描述符中的段界限值是从0开始的,如果段界限值是0,那按照楼主的计算公式,那实际段界限也是0哦。所以按照上式来展开计算,得到下面的:
实际使用的段界限=描述符中的段界限值*0x1000+0x1000-1,得到:
实际使用的段界限=描述符中的段界限值*0x1000+*0x0FFF。

就这样喽
  相关解决方案