Winapi 存取段寄存器

Winapi 存取段寄存器,winapi,masm,masm32,Winapi,Masm,Masm32,我试图查询位于进程环境块中的值,由FS段寄存器指向。试图编译包含fs:[0]段的代码会导致错误(错误A2108:使用寄存器假定为错误) 如何查询段寄存器 谢谢根据的MSDN文档,您需要在代码中添加一个ASSUBE指令 在文件顶部,应该删除寄存器错误检查 我认为这是因为对于大多数代码,使用段寄存器会导致错误的行为。MASM默认情况下假定对段寄存器的任何访问都是错误的(通常是错误的)。您需要使用假设FS:NOTHING重新定义FS寄存器的假设。 您可以将此指令放在文件的顶部,也可以临时“重新使用”

我试图查询位于进程环境块中的值,由FS段寄存器指向。试图编译包含fs:[0]段的代码会导致错误(错误A2108:使用寄存器假定为错误)

如何查询段寄存器


谢谢

根据的MSDN文档,您需要在代码中添加一个ASSUBE指令

在文件顶部,应该删除寄存器错误检查


我认为这是因为对于大多数代码,使用段寄存器会导致错误的行为。

MASM默认情况下假定对段寄存器的任何访问都是错误的(通常是错误的)。您需要使用
假设FS:NOTHING
重新定义FS寄存器的假设。 您可以将此指令放在文件的顶部,也可以临时“重新使用”FS寄存器。例如:

ASSUME FS:NOTHING
MOV EAX, FS:[0]
ASSUME FS:ERROR
通过这种方式,您可以仅关闭此单个指令的错误检查。假设指令只通知汇编程序要做什么,它们不会导致任何代码被发出