段描述符和段选择符解析

本文介绍了在保护模式下,CPU的CS(Code Segment)寄存器不再表示代码段地址,而是变成了段选择符,指向全局或局部描述符表中的段描述符。段描述符则详细描述了段的基地址、界限、属性等信息,包括段的权限等级、大小等。保护模式通过段选择符和段描述符实现更高级别的内存管理和权限控制。
摘要由CSDN通过智能技术生成

  如果你上过微机原理课,也可能把所有的寄存器都忘了,那我说一组寄存器CS:IP,你好像有那么一点

印象。在我们的印象中,CS(Code Segment)是代码段,IP(Instruction Pointer)指令指针,指向代码段

的偏移,两者组合指向了运行的地址。以前的裸机程序,这样是正确的。但是如果你正在接触Linux等操作

系统的话,CS就不是这个意义了,它可能变成可段选择符。

  先说一下为什么运行裸机和运行操作系统时候CS意义为什么会不一样。CPU开机启动是运行在实模式,

此时CS就是代码段,IP就是偏移地址,这是我们熟悉的。但是当运行操作系统的时候,必须实现页保护机制,

此时就必须运行在保护模式下。CR0寄存器的第0位PE(Protect Mode Enable),置1是保护模式,清0是实

模式。

  在保护模式下,CS就不再是代码段的地址了,而是代码段的选择符,,即Selector。它指向全局或者局部

描述符表中的代码段描述符。

                                          15                                                           3     2         1    0

                                                                    索引                                     TI          RPL

[1:0]位 RPL (Requestor Privilege Level) 请求者特权级,00内核级,11用户级

[2]位  TI (Table Index)TI=0,选择全局描述符表,TI=1,选择局部描述符表

[15:3] Index 索引值。如果TI=0,则到全局描述符表中索引某一项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值