Es gibt Instructions, um Register in Abhängigkeit von Flags zu setzen: Z.B.
setc <byte-register>
für das Carry-Flag und
setz <byte-register>
für das Zero-Flag. Siehe auch
diese Antwort bei StackOverflow mit Delphi-Beispiel.
Deinen Code würde ich damit so schreiben:
Delphi-Quellcode:
// edx = vergleichsdaten 1
// ebx = vergleichsdaten 2
// eax = ge-and-etes vergleichsergebnis
// eax und edx resetten
xor eax, eax
xor edx, edx
cmp edx, ebx
setz
dl
and eax, edx
<nächstes edx und ebx laden>
cmp edx, ebx
setz
dl
and eax, edx
<nächstes edx und ebx laden>
cmp edx, ebx
setz
dl
and eax, edx
<nächstes edx und ebx laden>
...
Wenn alle verglichenen Werte identisch sind, ist eax am ende True, sonst False. (Auf den Stack schieben könntest du die Werte aber natürlich auch.)