2016-04-09 19 views

Antwort

0

In x86 Baugruppe ist die entsprechende Anweisung CMPSD. Im Intel Instruction manual wird beschrieben als

OpCode Bytes A7 --- Anweisung: CMPSD --- Encoding: NP --- 64-Bit: Valid --- 32-Bit: Gültiger

  • Vergleichen Sie für Legacy-Modus dword unter Adresse DS: (E) SI mit dword an Adresse ES: (E) DI;
  • Für 64-Bit-Modus vergleichen dword bei Adresse (R | E) SI mit dword bei Adresse (R | E) DI. Die Statusflags sind entsprechend gesetzt.

CMPSD vergleicht zwei Speicheroperanden und setzt die Statusflags in EFLAGS entsprechend für den Verbrauch von Jcc/CMOVcc/....

Also, für den Vergleich von zwei DWORD/4-Byte-Variablen Sie Setup ESI und EDI wie diese

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

Für andere variable Größen wie 1,2,4,8 Bytes verwenden CMPS (B, W, D , Q).