8086/88 Assembler Befehlsreferenz TEST

Logical compare.

Bitweiser Vergleich zweier Werte.

Syntax:

TEST <Quelloperand>,<Maskenoperand>

Dieser Befehl veranlaßt eine logische Und-Verknüpfung zwischen dem <Quelloperanden> und dem <Maskenoperanden>. Das Ergebnis des Vergleichs wird jedoch nicht gespeichert, es dient lediglich dazu, die Kennzeichenbits (Flags) des Prozessors zu aktualisieren. Als Operanden dürfen zwei Register, ein Register und eine Speicheradresse oder ein Register und eine Konstante miteinander verglichen werden. Benutzt wird diesen Befehl vor allem, um zu überprüfen, ob bestimmte Bits eines Operanden gesetzt sind. In einem solchen Fall werden als <Quelloperand> zu testenden Wert und als Maskenoperand ein Bitmuster eingesetzt, bei dem alle Bits bis auf die zu testenden gelöscht sind. Folgt auf den TEST-Befehl eine JNZ-Verzweigung, dann wird diese immer dann ausgeführt, wenn es mindestens eine Übereinstimmung bei den Bits gegeben hat.

Beispiel:

MOV DX,03BFh ;lade Portadresse 3BFhex
IN AL,DX ;lese Wert von Port
TEST AL,128 ;Bit 8 gesetzt?
JNZ BIT7 ;ja: springe zum Label BIT8

Anzeige:

Anzeigen: