Bitte aktiviere JavaScript!
8086/88 Assembler Befehlsreferenz CMPS

Compare string.

Vergleiche Teile zweier Zeichenketten.

Syntax:

CMPS <Zielstring>,<Quellstring>

Der CMPS-Befehl vergleicht ein Zeichen aus einem String mit einem Zeichen aus einem anderen String. Dabei wird der Quell-String (adressiert durch DS:SI) vom Ziel-String (adressiert durch ES:DI) subtrahiert. Der Prozessor setzt die Kennzeichenbits dann entsprechend dem Ergebnis der Subtraktion. Die beiden Operanden <Ziel-String> und <Quell-String> dienen dem Assembler nur dazu festzustellen, ob es sich bei dem String um einen Byte-String oder einen Wort-String handelt. Das CMPS-Kommando selbst ist keinen gültigen Maschinenbefehl. Der Assembler übersetzt den CMPS-Befehl je nach Typ der Operanden in einen CMPSB- oder CMPSW-Befehl. Nach der Ausführung des Befehls werden die Index-Register SI und DI je nach Zustand des Richtungskennzeichens um die Werte 1, 2 oder 4 (je nach Typ) entweder erhöht oder veringert.

Beispiel:

MOV SI, OFFSET STRING1 ;erster String
MOV DI, 0 ;zweiter String in ES
MOV CX,100 ;String ist 100 Zeichen lang
REPE CMPS STRING1,STRING2 ;vergleiche die Strings