2016-04-09 13 views

答えて

0

x86アセンブリでは、対応する命令はCMPSDです。 Intel Instruction manualでは

オペコードと記載されているバイト:A7 ---命令:CMPSD ---エンコード:NP --- 64ビット:有効--- 32ビット:有効

  • レガシーモードでは、アドレス のdwordを比較します。DS:(E)アドレスESのdwordを持つSI:(E)DI;
  • の場合 アドレス(R | E)でアドレスを比較すると、アドレスが(R | E)DIで64ビットモードのSI となります。ステータスフラグ がそれに応じて設定されます。
CMPSD

は、2つのメモリ・オペランドを比較し、それに応じてJcc/CMOVcc/...の消費のためEFLAGSにおけるステータスフラグをセットします。だから、

、あなたが1,2,4,8バイトのような他の変数のサイズについては、この

lea esi, var1  ; ESI = address of var1 
lea edi, var2  ; EDI = address of var2 
cmpsd    ; compare them 
Jcc...   ; use (E)FLAGS 

のようなセットアップESIとEDI 2 DWORD/4バイトの変数を比較するためにCMPS(B、W、Dを使用します、Q)である。

関連する問題