Shu*_*eng 4 windows x86 assembly
我已经找到了关于FS寄存器的MSDN文档:
https://msdn.microsoft.com/en-us/library/ms253960(v=vs.90).aspx
其中指出:
"在x86环境中,FS寄存器指向线程信息块(TIB)结构的当前值."
但我似乎无法在基于Windows的环境中找到有关GS寄存器目的的严格文档.
有人能告诉我在哪里看,或给出解释?
Joh*_*ica 11
在32位Windows GS上保留供将来使用.
该FS段指向线程信息块.
在x64模式下FS,GS段和寄存器已被交换.
在x86模式中FS:[0]指向TIB的开始,在X64中它是GS:[0].
Win64使用的原因GS是该FS寄存器用于32位兼容层(容易混淆地称为Wow64).
因为32位应用程序使用FSWin64的簿记是简化的.
32位应用程序永远不会导致GS更改,64位应用程序永远不会导致FS更改.
请注意,GSWin64和Wow64中非零的事实可用于检测32位应用程序是否在64位Windows中运行.
在"真正的"32位Windows中,Windows GS始终为零.