约有 15 项符合查询结果, 以下是第 2 - 2项。
费时 < 1 秒。
刚刚看了下Intel的白皮书,在书中有这么一段话:
For expand-down data segments, the segment limit has the same function but is interpreted differently. Here, the effective limit specifies the last address that is not allowed to be accessed within the segment; the range of valid offset is from (Effective-limit + 1) to FFFFFFFFH if the B is set and from (effective-limit ...
Posted in Windows内核调试
by
阿龙
on 2010-10-13
刚才又仔细想了想,书上原文是:数据段的扩展方向和段界限一起决定了数据段内偏移的有效范围。当段最大为1M字节时,在向高端扩展的段内,从0到Limit的偏移是合法有效的偏移,而从Limit+1到1M-1的偏移是非法无效的偏移;在向低端扩展的段内,情形刚好相反,从0到Limit的偏移是非法无效的偏移,而从Limit+1到1M-1的偏移是合法有效的偏移,注意边界值Limit对应地址的有效性。段最大为4G时,情形类似。由此可见,如果一个段是向下扩展的,则所有的偏移必须大于限长,因为其限长是指下限,其基地址从高地址出开始。反之,若一个段是向上扩展的,则所有偏移必须小于等于限长,因为其限长是指上限,基地址从低地址处开始。通过使用段环绕,可以把向下扩展段定义到任何线性地址且可定义为任何大小。我觉得第一种布局 ...
Posted in Windows内核调试
by
阿龙
on 2010-10-13
上次关于这个问题问了老师,由于是刚开始学习,所以以为懂了,可以今天又细细研究下,发现还是很迷茫,恳请老师解惑!
最近在研究保护模式,一个问题一直在困扰我,就是段的向下扩展,看雪里有一篇关于向下扩展的,但还是没看明白,希望达人能给我解惑假设我有一个16位段,段基址是 0x2000h,段限是0x5h,那么这个段大小应该是0x6H,但是向下扩展的布局应该是什么样的呢?第一种可能是:0 <-------- 低地址0x1ffbh ...
Posted in Windows内核调试
by
阿龙
on 2010-10-13
非常感谢张老师!我买了《软件调试》,但是发现保护模式的知识很薄弱,所以在学习保护模式,一定要把它拿下:)
Posted in CPU架构
by
阿龙
on 2010-08-17
向上扩展很容易理解,偏移为 baseAddress ~ baseAddress+Limit
但对于向下扩展,我很迷惑在以下几点:
1. 比如一个段的基地址为B,段限为Limit,那么是映射那一部分呢?B~Limit还是Limit~0xFFFF(0xFFFFFFFF)?
2. 映射过去的基地址值是什么?还是B吗?如果是B,那么对于向下扩展偏移的有效范围,倒是正确的,B+Limit为第一个字节。
3. 为什么一个进程里面会有很多个段的基地址和大小都一样呢?他们在映射的时候怎么保证映射到不同的地方? 又或者对于代码,数据和堆栈段,每次只能映射一个,需要访问别的段时要重新用段选择子加载?
初学保护模式,诸多迷惑,希望能从前辈那里多多学习!
谢谢
Posted in CPU架构
by
阿龙
on 2010-08-16