Was ist die Assembly-Syntax zu vergleichen, wenn 2 Variablen gleich sind?Vergleichen Sie zwei Variablen in Assembly
Ich habe bereits versucht, this
aber es hat nicht funktioniert.
Was ist die Assembly-Syntax zu vergleichen, wenn 2 Variablen gleich sind?Vergleichen Sie zwei Variablen in Assembly
Ich habe bereits versucht, this
aber es hat nicht funktioniert.
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).
welche Baugruppe? Was hast du probiert? Was produziert es? –