【发布时间】:2021-03-12 06:02:26
【问题描述】:
GCC 和 Clang 支持名为 Named Address Space 的功能,允许用户通过 FS 或 GS 寄存器指示编译器生成对某些变量或成员的访问。
MSVC 是否支持这样的功能?
(我在 MSDN 上找不到任何东西,但是看到 Windows 长期以来如何允许用户使用 FSGSBASE 更改段寄存器的值,编译器必须提供某种方法来实际适当地排列数据,对吧?)
【问题讨论】:
-
fs 和 gs 不是已经用于 x86 上的 tls 了吗?
-
我猜你需要some assembly
-
@phuclv 该链接似乎只包含有关如何设置寄存器的信息,而不是如何哄骗编译器生成通过 FS 或 GS 偏移来访问某些变量的代码。
标签: c++ windows visual-c++ x86 cpu-registers