加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

什么是Windows上使用的GS寄存器?

发布时间:2020-12-14 02:08:14 所属栏目:Windows 来源:网络整理
导读:参见英文答案 What is the “FS”/“GS” register intended for?????????????????????????????????????3个 我已经找到了关于FS寄存器的MSDN文档: https://msdn.microsoft.com/en-us/library/ms253960(v=vs.90).aspx 其中指出: “In an x86 environment,th
参见英文答案 > What is the “FS”/“GS” register intended for?????????????????????????????????????3个
我已经找到了关于FS寄存器的MSDN文档:

https://msdn.microsoft.com/en-us/library/ms253960(v=vs.90).aspx

其中指出:

“In an x86 environment,the FS register points to the current value of
the Thread Information Block (TIB) structure.”

但我似乎无法在基于Windows的环境中找到有关GS寄存器目的的严格文档.

有人能告诉我在哪里看,或给出解释?

解决方法

在32位Windows上,GS保留供将来使用.
FS部分指向 Thread information block.

在x64模式下,FS和GS段寄存器已被交换.

在x86模式FS:[0]指向TIB的开始,在X64中它是GS:[0].
Win64使用GS的原因是在32位兼容层(令人困惑地称为Wow64)中使用了FS寄存器.
由于32位应用程序使用FS,因此简化了Win64的簿记.
32位应用程序永远不会导致GS被更改,64位应用程序永远不会导致FS被更改.

请注意,在Win64和Wow64中GS不为零的事实可用于检测32位应用程序是否在64位Windows中运行.在“真正的”32位Windows GS始终为零.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读