2017-01-20 4 views

答えて

1

call dword ds:[004000238h]、間接の近くに呼び出しあり、それは004000238hでDWORDの値を読み、呼び出しを行うためにそれを使用しています。

大括弧とdword ptrは、命令のタイプを決定するためのスポットであることに注意してください。

命令のオペランドがメモリオペランドであるため、DSが暗黙的にその命令を読み取るために使用されています(ディスアセンブラは、セグメントオーバーライド構文でそれを示すのが賢明です)。

CSの現在の値は変更されていないため、コールは近いです(保護モードのfar呼び出しはまれであり、特別な意味を持ちます)。
コールが現在の値CSに関連しているので、CSが暗黙的に使用されていると言えます。

Intel manual 3は、protected modeの呼び出しメカニズムについて説明しています。

32ビットシステムであっても、セグメンテーションは実質的に無効になります(すべてのディスクリプタは0になります)。セレクタレジスタは忘れてしまいますが、TLSとSEH(通常はfs/gsレジスタ)。

+0

なぜ静的リンクモジュールでもインポートアドレステーブルが必要ですか?私は動的リンクでIATを使用すると思います –

+0

@ user7445340具体的な例がないと言うのは難しいですが、Windows APIは主にユーザースペースDLLとして実装されています。 Cランタイムは 'user32'や' kernel32'のようなライブラリをロードする必要があります。 –

関連する問題