1

この操作の意味を知りたいのですが?

Test EDX, 200

私は次DWORDのような価値がありますEDX

1A1B1C00

するとtest EDX, 200JEジャンプします。なんで?EDXと等しくありません200

Test EDX, 200意味についてもっと知りたいです。

4

2 に答える 2

5

Aは、オペランドを変更せずにtest実行します( et alANDなどの一部のフラグのみを変更します)。単純にテストしZF(ゼロフラグ)、設定されている場合はジャンプします。jeZF

その結果がであった場合Test EDX, 200、値ANDEDXwith0x200に設定さZFれ、に設定されます。あなたの場合、それは私たちに与えるでしょう:1AND0

0x1A1B1C00 AND 0x00000200 -> 0x00000000

0x0200は2進数であるため0000 0010 0000 0000、命令の目的は、Test EDX, 200の値をテストしEDXて9番目のビット(0から数えて右から9桁)がa0または1であるかどうかを確認し、ゼロの場合はジャンプすることです。

于 2012-12-05T09:40:05.470 に答える
1

組み立て手順が何をするかを知るために、私はグーグルを使うことを勧めます。Googleでは、命令の名前(この場合testは)とintel instruction(Intel命令の場合)のように書くことができます。

グーグル:インテルの指導をテストする

上記のリンク先のGoogle検索の結果から、一部のサーバーには、命令の名前に従って名前が付けられたさまざまなx86アセンブリ命令用の個別のページがあることがわかります。

http://web.itu.edu.tr/kesgin/mul06/intel/instr/test.html

上にリンクされているウェブページにあるように:

TEST - Test For Bit Pattern

    Usage:  TEST    dest,src
    Modifies flags: CF OF PF SF ZF (AF undefined)

    Performs a logical AND of the two operands updating the flags
    register without saving the result.

たとえばcmpxchg、他の命令が何をするかを知るために必要なのは、アドレス内の命令の名前を置き換えることだけです。したがって、次のようになります。

http://web.itu.edu.tr/kesgin/mul06/intel/instr/cmpxchg.html

最後に、Intelアセンブリに関する最終的な情報源は、Intel Software Developer Manualsであり、非常に便利で、PDF形式で無料で入手できます。

インテル®64およびIA-32アーキテクチャーソフトウェア開発者マニュアル

インテル®64およびIA-32アーキテクチャーの複合ボリュームセットソフトウェア開発者向けマニュアル

于 2012-12-06T21:50:11.590 に答える