8086/88 Assembler Befehlsreferenz SCAS

Scan string.

Durchsuche einen String nach einer bestimmten Zeichenfolge.

Syntax:

SCAS <Ziel-String>

Dieser Befehl dient zum Durchsuchen eines Strings nach einem bestimmten Inhalt. Der über ES:DI adressierte Ziel-String wird mit dem Inhalt des Akkumulators (AL, AX oder EAX) verglichen. Dazu subtrahiert der Prozessor das aktuelle String-Element vom Akkumulator und setzt die Kennzeichenbits abhängig vom Ergebnis der Differenz. Die Inhalte des Strings oder des Akkumulators werden dabei nicht verändert. Nach dem Vergleich wird das DI-Register je nach Datentyp und je nach Zustand des Richtungs-Flags um die Werte 1, 2 oder 4 erhöht oder vermindert. Meist wird der SCAS-Befehl mit einem Wiederholungspräfix verwendet, um eine ganze Zeichenkette nach einem bestimmten Wort, Byte oder Doppelwort zu durchsuchen. Das SCAS-Kommando selbst stellt keinen gültigen Maschinenbefehl dar. Der Assembler verwendet den Ziel-String lediglich, um den Datentyp des Strings zu ermitteln, und übersetzt das SCAS-Kommando dann entweder in den SCASB- oder den SCASW-Befehl.

Beispiel:

;ES muss bereits auf das Extrasegment zeigen
LEA DI,ES:STRING ;lade Offset eines Strings
MOV CX,500 ;String ist 500 Bytes lang
MOV AL,4lh ;Vergleichselement ist der Buchstabe »A«
REPNZ SCAS STRING ;durchsuche den String
JCXZ NICHTDA ;CX ist jetzt 0, also wurde der Buchstabe nicht gefunden. Verzweige zum Label NICHTDA
... ;ansonsten ist der Buchstabe enthalten
NICHTDA: ... ;Buchstabe ist nicht enthalten

Anzeige:

Anzeigen: