Logikbefehle:
Zu dieser Gruppe gehören die Befehle AND, OR, XOR
und CPL. Die Befehle AND, OR und XOR verknüpfen das A-Register mit
einem Operanden wiefolgt:
A-Register | Operand | AND | OR | XOR |
0 | 0 | 0 | 0 | 0 |
0 |
|
|
|
|
1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 |
Daraus folgt, das bei der AND-Verknüpfung alle Bits,
die im Operanden 0 gesetzt sind, im A - Register auch 0 gesetzt werden.
Beispiel:
A-Register: | 01001101 | (dez. 77) |
Operand : | 11010011 | (dez. 211) |
-------------------------- |
|
|
AND : | 01000001 | (dez. 65) |
Dieser Wert ist nach der AND-Operation im ARegister vorzufinden.
Bei der OR-Verknüpfung werden alle Bits, die im Operanden
1 gesetzt sind, auch im A-Register 1 gesetzt. Beispiel:
A-Register: | 01001101 | (dez. 77) |
Operand : | 11010011 | (dez. 211) |
-------------------------- |
|
|
OR : | 11011111 | (dez. 223) |
Bei der XOR-Verknüpfung werden alle Bits, die im
Operanden 1 gesetzt sind, im A-Register invertiert, d.h. sind diese Bits
im A-Register gesetzt, werden sie gelöscht. Sind sie = 0, werden sie
gesetzt.
Beispiel:
A-Register: | 01001101 | (dez. 77) |
Operand : | 11010011 | (dez. 211) |
-------------------------- |
|
|
XOR : | 10011110 | (dez. 158) |
Das Ergebnis der Operation steht immer im ARegister. Dieses wird also zerstört und muss u.U. zuerst mit PUSH AF gerettet werden.
Der Befehl CPL bewirkt eine Invertierung des ganzen A-Register (entspricht also XOR &FF).