以粒度为4K的段界限的计算公式怎么来的?
Windows内核调试
以粒度为4K的段界限的计算公式怎么来的?
女乃米分
2009-11-16, 19:19 下午
当段界限以4K字节为单位时,实际的段界限LIMIT可通过下面的公式从20 位段界限Limit计算出来:
LIMIT=limit*4K+0FFFH=(Limit SHL 12)+0FFFH
我想知道后面为什么还要加0FFFH?
Re: 以粒度为4K的段界限的计算公式怎么来的?
mik
2009-11-19, 21:23 下午
4G 的值是:100000000(4*1024*1024*1024)
但是 4G 的地址范围是: 0 ~ FFFFFFFF
而 100000000(4G 值)已经不是 4G 取值范围
FFFFF * 4K = FFFFF000
所以:FFFFFFFF = (FFFFF * 4K) + FFF = FFFFF000 + FFF
举个例子:
100 年等于 1 个世纪
0 ~ 99 年是 第 1 个世纪,今年 2009 年 是 21 世纪
就是这个道理