首页
社区
课程
招聘
关于win32内存管理的困惑!高手帮忙看一下
2004-11-30 13:27 4243

关于win32内存管理的困惑!高手帮忙看一下

2004-11-30 13:27
4243
8086采用段式内存管理,段基址表示该段在物理内存中的起始地址;而80386采用段页式内存管理,此时,段基址的意义该怎么理解?windows怎样确定GDT表项中基址字段的值?在80386中有没有办法查看某个段的基址??

这个问题困扰了我很久,希望在此得到高手的指点,谢谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 1
打赏
分享
最新回复 (6)
雪    币: 209
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
csdsjkk 1 2004-11-30 19:43
2
0
均为0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hqt1979 2004-11-30 19:50
3
0
我知道在linux下,段基址都为0。但在windows下面也都为0吗??

雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
riijj 7 2004-11-30 19:52
4
0
段缓存器 (CS, SS, etc) 是指向 GDT 的一个指针,指向的地方存在了一个虚拟线性空间的位置 (linear address),这是一个4 GB 空间,这个位置再经由分页(demand-paged virtual memory)系统换算,成为硬件位置

我记得的是这样,可能有错,请大侠们提点
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
riijj 7 2004-11-30 19:53
5
0
最初由 hqt1979 发布
我知道在linux下,段基址都为0。但在windows下面也都为0吗??



我记得在 windows 2000 是 0
雪    币: 175
活跃值: (211)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
DonQuixote 8 2004-11-30 20:00
6
0
GDTR指向GDT,LDTR指向GDT中的包含 当前LDT段 的索引
CS包含当前LDT中的索引

系统先从GDTR里读取GDT的位置,然后从LDTR里读取LDT的索引,用此索引在GDT里找到当前LDT,然后读取CS,在LDT里找到代码段的描述符
段基址都是0

讲保护模式的书上有
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hqt1979 2004-12-1 10:21
7
0
那位兄弟能帮我推荐一本讲保护模式讲的比较清楚的书啊?我去看一下,谢谢!
游客
登录 | 注册 方可回帖
返回