1

引数付きのオペコード:8B55 08
逆アセンブル:MOV EDX,DWORD PTR SS:[EBP+8]

これはaddressの値EBP+8移動して に配置しEDXますか? とはDWORD PTRどういう意味ですか?

x86 命令をテストする最も簡単な方法は何ですか? すべてのレジスタとフラグを定義してから、このような命令を簡単に実行/テストする方法はありますか?

次のマニュアルを使用していますが、最初はかなり読みにくいです: http://download.intel.com/products/processor/manual/325383.pdf

4

1 に答える 1

4

DWORD PTR、オペランドが 32 ビットであることを指定します。これはサイズ ディレクティブと呼ばれ、x86 アセンブリ ガイドで詳しく説明されています。

アセンブラがオペランドの実際のサイズを認識できない場合、この種の修飾子を使用する必要があります。

問題の命令は、32 ビット値をスタック セグメント (SS) からEDX

@harold@brendanが指摘したようにEBP、ベースアドレスとして使用する場合のデフォルトのセグメントはSSであるため、あなたの場合は使用できるはずですmov edx, [ebp + 8]

上記のような命令をテストする 1 つの方法は、Visual Studio でインライン アセンブラーを使用し、さまざまなレジスタ値を編集および表示できるレジスタ ウィンドウを利用することです。

于 2013-06-29T09:48:46.897 に答える