-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、OSはWindows

4

2 に答える 2

2

あなたの逆アセンブラーは私たちが知らない loc_12 に値を割り当てました。あなたはこれがどのプラットフォームであるかを言っていませんが、Windows では fs: register に関係するものは一般にスレッド情報ブロック ( 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 に答える