-1

我想知道执行以下代码块时已为 eax 分配了哪个值?

mov     eax, dword ptr fs:loc_12+6

必要时转储数据:

00000012  0F B6 83 1B 47 40 00 0B  C0 75 0A B8 F8 FF FF FF

编辑:处理器是 x86,操作系统是 Windows

4

2 回答 2

2

您的反汇编程序为 loc_12 分配了一个我们不知道的值,您并没有说这是什么平台,但在 Windows 上,与 fs: 寄存器有关的任何事情通常都与线程信息块(TIB)有关。

最有可能的是,它是从异常处理程序链中读取或读取堆栈限制或线程 ID - 指令中使用的实际偏移量应该让您在我提到的页面上找到。

于 2013-03-16T01:14:35.193 回答
0

在不知道的情况下,不可能eax在这条指令之后说出 的值:

  • fs指向的段的段基地址
  • 指令中编码的偏移量,该loc_12+6常量的值
  • 地址的内存中有什么segment base address + offset encoded in the instruction
于 2013-03-16T11:50:19.500 回答