IA-32e模式

本文详细介绍了64位操作系统中CS段描述符的变化,指出在64位模式下,段描述符不再描述基址和LIMIT,而是强制平坦模式。同时,TSS在64位下扩展为128位,保存了RSP0和IST栈指针。IDT表也扩展到128位,其中1、3、4代表中断处理程序的栈指针。此外,文章还提及了FS和GS寄存器在32位和64位下的不同用途,以及内核KPCR在GS段中的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

64位下的CS段描述符
在这里插入图片描述
L:如果是64位模式,该标志位1
64位下强制平坦模式(FS和GS除外),段描述符不再描述段的基址和LIMIT。
应用程序的CS=23 32位
CS=33 64位

WINDBG下使用dg+偏移来解析段描述符

在这里插入图片描述

TSS段描述符
TSS在64位下是128位的

在这里插入图片描述
TSS的基址是:0xfffff801`242b3000

TSS里面保存的是0环的栈指针 RSP0和IDT处理函数要使用的特殊的IST栈指针(需要IDT表中特殊指定)
在这里插入图片描述

IDT

在这里插入图片描述

IDT表也扩展为128位
WINDBG中查看IDT dq idtr ,表中的
1,3,4 代表的是中断处理程序的栈在TSS描述符IST对应的栈指针。
也就是1代表IST1对应的栈指针地址。如果是0的话,就是用默认的栈指针RSP0.
在这里插入图片描述

查看具体的中断号 !idt 0

FS GS

fs: 32位程序 指向TEB
GS: 64位指向3环的TEB
内核的KPCR 是gs:0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值