8086/88 Assembler Befehlsreferenz REPNE

Repeat while not equal.

Wiederhole eine String-Anweisung, solange das Zero-Flag gelöscht ist.

Syntax:

REPNE <String-Befehl> <Parameter>

Der REPNE-Befehl ist kein eigenständiger Maschinenbefehl, sondern ein sogenanntes Wiederholungspräfix. REPNE wird vor einen beliebigen String-Befehl eingesetzt, der je nach Syntax einige Parameter hat. Der Befehl hinter dem REPNE-Präfix wird dann so lange wiederholt, bis das CX-Register den Wert 0 besitzt. Wenn der String-Befehl eine der beiden Vergleichsoperationen CMPS oder SCAS ist, so bricht der Prozessor die Schleife auch dann ab, wenn das Zero-Flag gesetzt wird, wenn er also ein identisches Byte, Wort oder Doppelwort bei den zu vergleichenden Strings findet. Nach jeder Ausführung des jeweiligen String-Befehls zählt der Prozessor das CX-Register um 1 herab. Benutzt wird der REPNE-Befehl in Schleifen, die ganze Zeichenketten verarbeiten sollen, zum Beispiel beim MOVS-Kommando. Bei diesen Befehlen wird zuerst in das CX-Register die Länge des Strings eingetragen und dann wird mit dem REPNE-Präfix den kompletten String verarbeitet.

Beispiel:

MOV CX,100 ;der String ist 100 Worte lang
LEA SI,STRING1 ;lade Adresse des ersten Strings
LEA DI,ES:STRING2 ;lade Adresse des zweiten Strings
REPNE CMPSW ;vergleiche einzelne String-Worte in einer Schleife, bis der String beendet ist oder eine Übereinstimmung auftritt

Anzeige:

Anzeigen: