一个公式不明白,请教了 limit为32BIT的前20BIT,后12BIT自然是从0到FFF了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /--- limit 值 ---/------20 bit------\/--12 bit--XXXXXXXXXXXXXXXXXXXX000000000000 ----- 下界XXXXXXXXXXXXXXXXXXXX111111111111 ----- 上界 可能你所说的“段界限以4k为单位”这句话可能会让你产生误解,实际上正确的说法是段属性中的分配粒度为4k,一般情况下当粒度为1时,20位的段限值就是实际的段界限值,而当分配粒度为4k时,描述符中的段限值a需要乘以4k再加上0xfff才是真正的段限值,即a*4k+0xfff,这里为什么要加上0xfff,我个人想法是为了处理机处理上的方便性,因为,机器接受应用程序传来的段内32位偏移,就可以直接将偏移值和0xfffff000做and运算就可以比较了,当然如果不加上0xfff而是将段限值加一也可以将前一地址范围包含在内,但是将会多包含一字节进来,而这多加的一字节不是用户考虑在内的,本来用户指定不可访问的这一字节的内容将能够被访问,这是错误的,而上面这种做法不会有问题。例如,用户想要为自己的段指定16k的空间,他就可以将段限设为3,而分配粒度设为4k(当然这个例子并不需要使用4k粒度的方式),这样他在程序中就以偏移0-3*4k+0xfff可以访问该段中所有的内存,而不会越界,如果考虑将段限设为4,而不允许加上0xfff,他仍然能够访问该段内存,但是可访问的内容将是 0-4*4k,与上面的 0- 3*4k-1多出一字节。 vs2005编译运行后无法启用上面各个按钮的问题!!! 求教怎么用SetClassLong改变鼠标光标 ODBC操作EXCEL mfc 工具条添加兹定于图片 关于网络字节顺序问题 如何给调用别人的程序发送输入信息? 偶只想HOOK一个特定的进程请问用方法? 恳请各位大侠为小弟提供速度还可以的国外的代理服务器地址,感激不尽!!! 求助,怎么写控件 mfc中如何只用hwnd得到tab control的tab page text CFile的文件问题(高手救命阿!) faint!为memcpy()郁闷了一个上午
/--- limit 值 ---/------20 bit------\/--12 bit--XXXXXXXXXXXXXXXXXXXX000000000000 ----- 下界XXXXXXXXXXXXXXXXXXXX111111111111 ----- 上界
说法是段属性中的分配粒度为4k,一般情况下当粒度为1时,20位的段限值就是实际
的段界限值,而当分配粒度为4k时,描述符中的段限值a需要乘以4k再加上0xfff才
是真正的段限值,即a*4k+0xfff,这里为什么要加上0xfff,我个人想法是为了处理
机处理上的方便性,因为,机器接受应用程序传来的段内32位偏移,就可以直接将
偏移值和0xfffff000做and运算就可以比较了,当然如果不加上0xfff而是将段限值
加一也可以将前一地址范围包含在内,但是将会多包含一字节进来,而这多加的一字
节不是用户考虑在内的,本来用户指定不可访问的这一字节的内容将能够被访问,这
是错误的,而上面这种做法不会有问题。例如,用户想要为自己的段指定16k的空间,他就可以将段限设为3,而分配粒度设为
4k(当然这个例子并不需要使用4k粒度的方式),这样他在程序中就以偏移0-3*4k+0xfff
可以访问该段中所有的内存,而不会越界,如果考虑将段限设为4,而不允许加上0xfff,
他仍然能够访问该段内存,但是可访问的内容将是 0-4*4k,与上面的 0- 3*4k-1多出
一字节。