首页
社区
课程
招聘
[旧帖] 求助:关于保护模式和GDT 0.00雪花
发表于: 2013-4-8 18:42 4462

[旧帖] 求助:关于保护模式和GDT 0.00雪花

2013-4-8 18:42
4462
我的问题是:cpu从实模式转到保护模式之后的那一瞬间,段寄存器cs中的内容是什么?如何确定的?因为我在看李忠的书《x86汇编:从实模式到保护模式》后想到这个问题,请各位大牛指点一下

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己想明白了,,是通过一条jmp指令来做的。。。jmp指令是形如“jmp 段选择子:段内偏移”的形式,与实模式的一样,但是实模式是把段选择子解释为段了?
2013-4-8 19:09
0
雪    币: 608
活跃值: (643)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
当开启A20地址线、设置GDT、CR0.PE=1这些操作完成以后,这个时候CPU已经进入了保护模式,但是这个保护模式是16位保护模式,因为CS寄存器的状态还是16位状态下遗留下来的,那个jmp实际是个far jmp,far jmp的目的其实是刷新CPU的CS寄存器的Cache部分,这样能保证进入32位保护模式
CS在不同的模式下解释方式不一样,实地址模式下,是段寄存器,保护模式下是段选择子
2013-4-8 19:37
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是,的确是这样,谢谢你了!
2013-4-8 20:09
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
far jmp的目的其实是刷新CPU的CS寄存器的Cache部分
2013-4-9 20:37
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
什么叫cache部分?那个64位的隐藏信息吗?
2013-4-11 11:23
0
雪    币: 149
活跃值: (150)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
如果段选择子指向的是GDT,一次call或者jmp,需要用到CS,ds,ss,但不需要每一次走gdt, 对每一个值都有一个缓存…
2013-5-30 08:07
0
游客
登录 | 注册 方可回帖
返回
//