2017-07-29 8 views
2

私はobjdumpの中で奇妙な命令を見ています:私は手動でthisを使用してオペコードを解体しようとすると私のobjdumpでこの行は何ですか?

64 2e 65 78 65 fs cs gs js,pn 0x4010cb 

は、私が取得:

fs cs gs js 0x6a 

この命令は何を意味するのでしょうか?その意義は何ですか?

情報:Win64形式のNASMを使用してWindows 7 64ビットでコンパイルされたアセンブリ。

+6

これは命令ではありません。それはちょうどテキスト 'd.exe'です。あなたはそれを分解して分かりやすい出力を期待することはできません。 – Jester

答えて

5

これは、先頭に複数の接頭辞が付いたジャンプ命令です。これは次のようにデコードします:

  • は、fsセグメントオーバーライドプレフィックスです。ここでは何もしません。
  • 2eは、セグメントオーバーライドプレフィックスcsです。条件付きジャンプ命令の前では、ジャンプが行われないことを示唆する。
  • 65は、セグメントオーバーライドプレフィックスgsです。ここでは何もしません。
  • 78命令js「ジャンプフラグがセットされている場合」
  • 65がこの命令のオペランドです。

この命令はあまり意味がありません。エンコーディングは文字列d.exeに対応しているため、実際にはコードではなくデータである可能性があります。アセンブラが何らかの整列を行うために無用な接頭辞を生成することもありますが、この命令があるアドレスを見ることなく、この仮説はテストできません。

関連する問題