Impressum
< Arithmetische Befehle Inhalt Schiebebefehle>

Logische Befehle

And
Or
X0r
Akku löschen/komplementieren

And

Der Befehl anl op1, op2 ist ein bitweises Und-Verknüpfung der Operanden op1 und op2. Das Ergebnis steht nach der Ausführung in op1.
Ein Bit im Ergebnis ist genau dann 1, wenn die ensprechenden Bit in op1 und op2 auf 1 sind, sonst 0.
In Abbildung 1 ist ein Beispiel mit Werten abgebildet. Hier werden die Werte 11001010 und 01100110 bitweise mit Und verknüpft.
bitweises und
Abb. 1: Bitweises Und

Hier die Und-Befehle in der Übersicht:

MnemonicFunktionBytesMZFlags
ANL A,RrDer Akkumulator wird überschrieben durch das Ergebnis der UND-Verknüpfung von Akku und dem Inhalt von Rr.11P
ANL A,dadrDer Akkumulator wird überschrieben durch das Ergebnis der UND-Verknüpfung von Akku und dem Inhalt von dadr.21P
ANL A,@RiDer Akkumulator wird überschrieben durch das Ergebnis der UND-Verknüpfung von Akku und dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri adressiert wird.11P
ANL A,#const8Der Akkumulator wird überschrieben durch die UND-Verknüpfung von Akku und der 8-Bit-Konstanten.21P
ANL dadr,ADer Inhalt von dadr wird überschrieben durch die UND-Verknüpfung von Akku und dem Inhalt von dadr.21-
ANL dadr,#const8Der Inhalt von dadr wird überschrieben durch die UND-Verknüpfung der 8-Bit-Konstanten und dem Inhalt von dadr.32-

Or

Der Befehl orl op1, op2 ist ein bitweises Oder-Verknüpfung der Operanden op1 und op2. Das Ergebnis steht nach der Ausführung in op1.
Ein Bit im Ergebnis ist genau dann 1, wenn das ensprechende Bit in op1 auf 1 ist oder in op2 auf 1 ist, sonst 0. In Abbildung 2 ist ein Beispiel mit Werten abgebildet. Hier werden die Werte 11001010 und 01100110 bitweise mit Oder verknüpft.
bitweises oder
Abb. 2: Bitweises Oder

Hier die Oder-Befehle in der Übersicht:

MnemonicFunktionBytesMZFlags
ORL A,RrDer Akkumulator wird überschrieben durch die ODER-Verknüpfung von Akku und dem Inhalt von Rr.11P
ORL A,dadrDer Akkumulator wird überschrieben durch die ODER-Verknüpfung von Akku und dem Inhalt von dadr.21P
ORL A,@RiDer Akkumulator wird überschrieben durch die ODER-Verknüpfung von Akku und dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri adressiert wird.11P
ORL A,#const8Der Akkumulator wird überschrieben durch das Ergebnis der ODER-Verknüpfung von Akku und der 8-Bit-Konstanten.21P
ORL dadr,ADer Inhalt von dadr wird überschrieben durch die ODER-Verknüpfung von Akkumulator und dem Inhalt von dadr.21-
ORL dadr,#const8Der Inhalt von dadr wird überschrieben durch die ODER-Verknüpfung der 8-Bit-Konstanten und dem Inhalt von dadr.32-

XOr

Der Befehl xrl op1, op2 ist ein bitweises XOr-Verknüpfung der Operanden op1 und op2. Das Ergebnis steht nach der Ausführung in op1.
Ein Bit im Ergebnis ist genau dann 1, wenn das ensprechende Bit entweder in op1 auf 1 ist oder in op2 auf 1 ist. Anders formuliert: Sind die Bits in den Operanden unterschiedlich, so ist das Ergebnisbit 1, sind sie gleich ist das Ergebnis 0.
Abbildung 3 zeigt ein Beispiel für eine bitweise Xor-Verknüpfung.
bitweises xor
Abb. 3: Bitweises XOr

Hier die XOr-Befehle in der Übersicht:

MnemonicFunktionBytesMZFlags
XRL A,RrDer Akkumulator wird überschrieben durch das Ergebnis der EXCLUSIVE-ODER-Verknüpfung von Akku und dem Inhalt von Rr.11P
XRL A,dadrDer Akkumulator wird überschrieben durch das Ergebnis der EXCLUSIVE-ODER-Verknüpfung von Akku und dem Inhalt von dadr.21P
XRL A,@RiDer Akkumulator wird überschrieben durch die EXCLUSIVE-ODER-Verknüpfung von Akku und dem Inhalt der internen Datenspeicherzelle, die durch den Inhalt von Ri adressiert wird.11P
XRL A,#const8Der Akkumulator wird überschrieben durch das Ergebnis der EXCLUSIVE-ODER-Verknüpfung von Akku und der 8-Bit-Konstanten.21P
XRL dadr,ADer Inhalt von dadr wird überschrieben durch die EXCLUSIVE-ODER-Verknüpfung von Akkumulator und dem Inhalt von dadr.21-
XRL dadr,#const8Der Inhalt von dadr wird überschrieben durch die EXCLUSIVE-ODER-Verknüpfung der 8-Bit-Konstan-und dem Inhalt von dadr.32-

Akku löschen/komplementieren

Der Befehl clr A löscht den Akkumulator, d.h. er setzt alle Bits im Akku auf 0. Den selben Effekt haben die Befehle mov A,#0 und anl A, #0. Allerdings benötigt clr A nur 1 Byte im ROM die anderen Befehle jeweils 2.
Der Befehl cpl A invertiert den Akkumulator bitweise, d.h. jede binäre 1 im Akku wird zu 0 und jede 0 zu einer 1.
Denselben Effekt hätte z.B. der Befehl xrl A, #0FFh.

Hier die zwei Befehle Clr und CPL:

MnemonicFunktionBytesMZFlags
CLR ADer Akkumulator wird gelöscht.11P
CPL ADer Inhalt des Akkumulators wird invertiert.11P