| A | |||||||
| ACALL | ADD | ADDC | AJMP | ANL | |||
| B | |||||||
| BIT | |||||||
| C | |||||||
| CJNE | CLR | CPL | |||||
| D | |||||||
| DA A | DEC | DIV | DJNZ | ||||
| I | |||||||
| INC | |||||||
| J | |||||||
| JB | JBC | JC | JNB | JNC | JMP | JZ | JNZ |
| L | |||||||
| LCALL | LJMP | ||||||
| M | |||||||
| MOV | MOVC | MOVX | MUL | ||||
| N | |||||||
| NOP | |||||||
| O | |||||||
| ORL | |||||||
| P | |||||||
| POP | PUSH | ||||||
| R | |||||||
| RET | RETI | RL | RLC | RR | RRC | ||
| S | |||||||
| SETB | SJMP | SUBB | SWAP | ||||
| X | |||||||
| XCH | XCHD | XRL |
| Rn | Register R7 - R0 der aktuell gewählten Registerbank |
| direct | Zelle im internen Datenspeicher (SFR oder RAM). |
| @Ri | Internes RAM indirekt adressiert durch R0 oder R1. |
| #data | 8-Bit Konstante |
| #data16 | 16-Bit Konstante |
| addr16 | 16-Bit Zieladresse. Siehe LCALL, LJMP |
| addr11 | 11-Bit Zieladresse. Siehe ACALL, AJMP |
| rel | Vorzeichenbehaftetes Offset-Byte. Siehe SJMP |
| bit | Direkt adressiertes Bit im internen RAM oder SFR |
| Beschreibung: | ACALL ruft ein Unterprogramm an der angegebenen Adresse auf. Der Befehl inkrementiert den PC zweimal, um die Adresse der folgenden Anweisung zu erhalten, dann wird das 16-bit Ergebnis auf dem Stack abgelegt (LSB zuerst) und der Stackpointer zweimal inkrementiert. Die Zieladresse setzt sich aus den oberen fünf Bits des PC, den Bits 7...5 des ersten Befehlsbytes und dem zweiten Befehlsbyte zusammen. Daher muß das aufgerufene Unterprogramm im gleichen 2K-Block liegen wie der Befehl nach dem ACALL. | ||||||
| | |||||||
| Funktion: |
| ||||||
| | |||||||
| Zyklen: | 2 | ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Der Befehl LCALL | ||||||
| Befehlsreferenz |
| Beschreibung: | ADD addiert die angegebene Byte-Variable zum Akkumulator. Das Ergebnis kommt wieder in den Akkumulator. | ||||
| | |||||
| Funktion: | A := A + <src-byte> | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | Carry bzw. Auxiliary-carry werden gesetzt, wenn ein Übertrag von Bit 7 bzw. Bit 3 stattfindet, andernfalls gelöscht. Bei der Addition von vorzeichenlosen Zahlen zeigt das Carry-Flag einen Überlauf an. | ||||
| OV wird gesetzt, wenn ein Übertrag von Bit 6, aber nicht von Bit 7 stattfindett oder umgekehrt ein Übertrag von Bit 7, aber nicht von Bit 6. Andernfalls wird OV zurückgesetzt. Bei der Addition von vorzeichenbehafteten Zahlen zeigt OV an, daß ein negatives Ergebnis aus zwei positiven Zahlen entstanden ist oder umgekehrt. | |||||
| | |||||
| Siehe auch: | Der Befehl ADDC | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | ADDC addiert die angegebene Byte-Variable und das Carry-Flag zum Akkumulator. Das Ergebnis kommt wieder in den Akkumulator. | ||||
| | |||||
| Funktion: | A := A + C + <src-byte> | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | Carry bzw. Auxiliary-carry werden gesetzt, wenn ein Übertrag von Bit 7 bzw. Bit 3 stattfindet, andernfalls gelöscht. Bei der Addition von vorzeichenlosen Zahlen zeigt das Carry-Flag einen Überlauf an. | ||||
| OV wird gesetzt, wenn ein Übertrag von Bit 6, aber nicht von Bit 7 stattfindett oder umgekehrt ein Übertrag von Bit 7, aber nicht von Bit 6. Andernfalls wird OV zurückgesetzt. Bei der Addition von vorzeichenbehafteten Zahlen zeigt OV an, daß ein negatives Ergebnis aus zwei positiven Zahlen entstanden ist oder umgekehrt. | |||||
| | |||||
| Siehe auch: | Die Befehle ADD, SUBB | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | AJMP setzt die Programmausführung bei der angegebenen Adresse fort. Die Zieladresse setzt sich aus den oberen fünf Bits des PC, den Bits 7...5 des ersten Befehlsbytes und dem zweiten Befehlsbyte zusammen. Daher muß der aufgerufene Programmteil im gleichen 2K-Block liegen wie der Befehl nach dem AJMP. | ||
| | |||
| Funktion: |
| ||
| | |||
| Zyklen: | 2 | ||
| | |||
| Flags: | kein Einfluß | ||
| | |||
| Siehe auch: | Die Befehle LJMP, SJMP | ||
| Befehlsreferenz |
| Beschreibung: | ANL führt eine UND-Verknüpfung zwischen <dest> und <src> durch und speichert das Ergebnis in <dest>. | ||
| | |||
| Format: |
| ||
| | |||
| Siehe auch: | Befehlsreferenz |
| Beschreibung: | ANL führt eine bitweise UND-Verknüpfung zwischen den angegebenen Variablen durch und speichert das Ergebnis in <dest-byte>. Wenn der Befehl verwendet wird, um einen Ausgangsport zu verändern, so wird der Wert für die Originaldaten des Ports aus dem Ausgabelatch gelesen, nicht von den Port-Pins. | ||||||
| | |||||||
| Funktion: | <dest-byte> := <dest-byte> Ù <src-byte> | ||||||
| | |||||||
| Format: |
| ||||||
| | |||||||
| Zyklen: |
| ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Die Befehle ANL C,<src-bit>, ORL, XRL | ||||||
| Befehlsreferenz | |||||||
| Adressierungsmodi |
| Beschreibung: | Ist <src-bit> gesetzt, so bleibt das Carry-Flag unverändert. Ist <src-bit> nicht gesetzt, so wird das Carry-Flag gelöscht. | ||||
| | |||||
| Format/Funktion: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß (außer Carry) | ||||
| | |||||
| Siehe auch: | Die Befehle ANL <dest-byte>,<src-byte>, ORL C,<src-bit> | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | BIT definiert ein Symbol (Label) mit der angegebenen Bitadresse. Wird ein Ausdruck der Form <byte-adr>.<0...7> verwendet, so wird dem Symbol die Adresse des angegebenen Bits zugewiesen. Enthält der Ausdruck keinen Punkt (.) an letzter Stelle, so verhält sich BIT ähnlich zum Befehl EQU, d.h., dem Symbol wird einfach der angegebene Wert zugewiesen. |
| BIT prüft, ob die angegebene Bitadresse im gewählten Prozessor verfügbar ist. | |
| | |
| Siehe auch: | Der Befehl EQU |
| Pseudokommandos | |
| | |
| Beispiel: | LED: BIT P1.7 |
| Beschreibung: | CJNE vergleicht die ersten beiden Operanden und verzweigt zum Sprungziel, wenn die Werte nicht gleich sind. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet.. | |||||||
| | ||||||||
| Funktion: |
| |||||||
| | ||||||||
| Format: |
| |||||||
| | ||||||||
| Zyklen: | 2 | |||||||
| | ||||||||
| Flags: | Das Carry-Flag wird gesetzt, falls <dest-byte> (nicht vorzeichenbehaftet) kleiner ist als <src-byte>, andernfalls gelöscht. | |||||||
| | ||||||||
| Siehe auch: | Der Befehl DJNZ | |||||||
| Befehlsreferenz | ||||||||
| Adressierungsmodi |
| Beschreibung: | Das angegebene Ziel wird gelöscht (mit 0 geladen). | ||
| | |||
| Format: |
| ||
| | |||
| Siehe auch: | Die Befehle CPL, SETB | ||
| Befehlsreferenz |
| Beschreibung: | Der Akkumulator wird gelöscht (mit 0 geladen). |
| | |
| Funktion: | A := 0 |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl CLR bit |
| Befehlsreferenz |
| Beschreibung: | Das angegebene Bit wird gelöscht (mit 0 geladen). |
| | |
| Funktion: | bit := 0 |
| | |
| Format: | bit kann jedes direkt adressierbare Bit oder C (Carry-Flag) sein. |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Die Befehle SETB, CLR A |
| Befehlsreferenz | |
| Adressierungsmodi |
| Beschreibung: | Das angegebene Ziel wird komplementiert. | ||
| | |||
| Format: |
| ||
| | |||
| Siehe auch: | Die Befehle CLR, SETB | ||
| Befehlsreferenz |
| Beschreibung: | Der Akkumulator wird komplementiert (Einerkomplement), d.h. jedes 0-Bit wird zu einem 1-Bit und umgekehrt. |
| | |
| Funktion: | A := ¬ A |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl CPL bit |
| Befehlsreferenz |
| Beschreibung: | Das angegebene Bit wird komplementiert. |
| | |
| Funktion: | bit := ¬ bit |
| | |
| Format: | bit kann jedes direkt adressierbare Bit oder C (Carry-Flag) sein. |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl CPL A |
| Befehlsreferenz | |
| Adressierungsmodi |
| Beschreibung: | DA A gleicht den Acht-Bit-Wert im Akku nach einer vorangegangenen Addition (ADD oder ADDC) zweier Werte im gepackten BCD-Format wieder zu einer BCD-Zahl (mit zwei Ziffern) ab. |
| Wenn die Akkumulator-Bits 0 bis 3 größer als 9 sind (d.h. 0xAh...0xFh), oder wenn das AC-Flag gesetzt ist, wird 6 zum Akkumulator addiert. Dies erzeugt das gewünschte Digit im unteren Nibble. Diese Addition setzt das Carry-Flag, falls ein Übertrag von Bit 7 des Akkus entsteht (falls nicht, behält das Carry-Flag seinen alten Zustand). | |
| Ist das Carry-Flag gesetzt oder sind die oberen vier Akkumulator-Bits größer als 9 (0Axh...0Fxh), wird 6 zur oberen Hälfte des Akkumulators addiert. Dies erzeugt das gewünschte BCD-Digit im oberen Nibble des Akkus. Auch diese Addition setzt das Carry-Flag, falls ein Übertrag von Bit 7 des Akkus entsteht (falls nicht, behält das Carry-Flag seinen alten Zustand). | |
| Nach der Operation zeigt ein gesetztes Carry-Flag an, daß die Summe der ursprünglichen zwei BCD-Variablen größer als 99 war. | |
| | |
| Funktion: | siehe Text |
| | |
| Zyklen: | 1 |
| | |
| Flags: | außer Carry (s.o.) kein Einfluß |
| | |
| Siehe auch: | Befehlsreferenz |
| Beschreibung: | DEC dekrementiert die angegebene Variable um 1. War der ursprüngliche Wert 0, so findet ein Unterlauf auf 0FFh statt. | ||||
| Wird der Befehl verwendet, um einen Ausgangsport zu dekrementieren, so werden die Originaldaten aus dem Ausgangslatch, nicht von den Port-Pins genommen. | |||||
| | |||||
| Funktion: | <byte> := <byte> - 1 | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | kein Einfluß. | ||||
| | |||||
| Siehe auch: | Der Befehl INC | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | DIV AB dividiert den vorzeichenlosen 8-Bit-Wert im Akku durch den vorzeichenlosen 8-Bit-Wert im B-Register. Der (ganzzahlige) Quotient kommt in den Akku, der Divisionsrest in das B-Register. Bei einer Division durch Null ist das Ergebnis unbestimmt. |
| | |
| Zyklen: | 4 |
| | |
| Flags: | Carry wird gelöscht. OV wird gesetzt, falls B Null war, ansonsten gelöscht. |
| | |
| Siehe auch: | Der Befehl MUL |
| Befehlsreferenz |
| Beschreibung: | DJNZ dekrementiert das angegebene <byte> um 1 und verzweigt zum Sprungziel, sofern das Ergebnis nicht Null ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet.. | ||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Die Befehe CJNE, DEC | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | INC inkrementiert die angegebene Variable um 1. | ||
| | |||
| Format: |
| ||
| | |||
| Siehe auch: | Der Befehl DEC | ||
| Befehlsreferenz |
| Beschreibung: | INC inkrementiert die angegebene Variable um 1. War der ursprüngliche Wert 0FFh, so findet ein Überlauf auf 0 statt. | ||||
| Wird der Befehl verwendet, um einen Ausgangsport zu inkrementieren, so werden die Originaldaten aus dem Ausgangslatch, nicht von den Port-Pins genommen. | |||||
| | |||||
| Funktion: | <byte> := <byte> + 1 | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | kein Einfluß. | ||||
| | |||||
| Siehe auch: | Der Befehl DEC | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | DPTR wird um 1 inkrementiert (16-Bit-Operation). Findet ein Überlauf von Bit 7 statt (DPL), so wird DPH inkrementiert. |
| | |
| Funktion: | DPTR := DPTR + 1 |
| | |
| Zyklen: | 2 |
| | |
| Flags: | kein Einfluß. |
| | |
| Siehe auch: | Der Befehl INC |
| Befehlsreferenz |
| Beschreibung: | JB verzweigt zum Sprungziel, sofern das angegebene bit gesetzt ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JBC, JNB | |||
| Befehlsreferenz | ||||
| Adressierungsmodi |
| Beschreibung: | JBC verzweigt zum Sprungziel und löscht das angegebene bit, sofern das angegebene bit gesetzt ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | ||||
| Falls die Anweisung auf ein Port-Bit angewendet wird, so werden die Ursprungsdaten aus dem Port-Latch und nicht vom Port-Pin gelesen. | |||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Die Befehe JB, JNB | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | JC verzweigt zum Sprungziel, sofern das Carry-Flag gesetzt ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JNC, JB | |||
| Befehlsreferenz |
| Beschreibung: | JNB verzweigt zum Sprungziel, sofern das angegebene bit nicht gesetzt ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JB, JNC | |||
| Befehlsreferenz | ||||
| Adressierungsmodi |
| Beschreibung: | JNC verzweigt zum Sprungziel, sofern das Carry-Flag nicht gesetzt ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JC, JNB | |||
| Befehlsreferenz |
| Beschreibung: | JMP @A+DPTR addiert den vorzeichenlosen 8-Bit-Wert im Akku zum DPTR und lädt das Ergebnis in den PC. |
| | |
| Funktion: | PC := A + DPTR |
| | |
| Zyklen: | 2 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Die Befehe AJMP, LJMP |
| Befehlsreferenz |
| Beschreibung: | JZ verzweigt zum Sprungziel, sofern der Akkumulator-Inhalt Null ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JNZ, CJNE | |||
| Befehlsreferenz |
| Beschreibung: | JNZ verzweigt zum Sprungziel, sofern der Akkumulator-Inhalt ungleich Null ist. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 2 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehe JZ, CJNE | |||
| Befehlsreferenz |
| Beschreibung: | LCALL ruft ein Unterprogramm an der angegebenen Adresse auf. Der Befehl inkrementiert den PC zweimal, um die Adresse der folgenden Anweisung zu erhalten, dann wird das 16-bit Ergebnis auf dem Stack abgelegt (LSB zuerst) und der Stackpointer zweimal inkrementiert. Dann wird der PC mit der angegebenen Zieladresse geladen. | ||||||
| | |||||||
| Funktion: |
| ||||||
| | |||||||
| Zyklen: | 2 | ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Der Befehl ACALL | ||||||
| Befehlsreferenz |
| Beschreibung: | LJMP setzt die Programmausführung bei der angegebenen Adresse fort. |
| | |
| Funktion: | PC := addr16 |
| | |
| Zyklen: | 2 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Die Befehle AJMP, SJMP |
| Befehlsreferenz |
| Beschreibung: | MOV kopiert den Inhalt von <src> nach <dest>. | |||
| | ||||
| Format: |
| |||
| | ||||
| Siehe auch: | Die Befehle MOVC, MOVX | |||
| Befehlsreferenz |
| Beschreibung: | MOV kopiert den Inhalt von <src-byte> nach <dest-byte>. | ||||||||||||||||||||||||||||||||
| | |||||||||||||||||||||||||||||||||
| Funktion: | <dest-byte> := <src-byte> | ||||||||||||||||||||||||||||||||
| | |||||||||||||||||||||||||||||||||
| Format/Zyklen: |
| ||||||||||||||||||||||||||||||||
| | |||||||||||||||||||||||||||||||||
| Flags: | kein Einfluß | ||||||||||||||||||||||||||||||||
| | |||||||||||||||||||||||||||||||||
| Siehe auch: | Der Befehl MOV | ||||||||||||||||||||||||||||||||
| Befehlsreferenz | |||||||||||||||||||||||||||||||||
| Adressierungsmodi |
| Beschreibung: | MOV kopiert den Inhalt von <src-bit> nach <dest-bit>. | ||||||
| | |||||||
| Funktion: | <dest-bit> := <src-bit> | ||||||
| | |||||||
| Format/Zyklen: |
| ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Der Befehl MOV | ||||||
| Befehlsreferenz | |||||||
| Adressierungsmodi |
| Beschreibung: | MOV DPTR,#data16 kopiert die 16-Bit-Konstante #data16 in das DPTR-Register. |
| | |
| Funktion: | DPTR := data16 |
| | |
| Zyklen: | 2 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl MOV |
| Befehlsreferenz |
| Beschreibung: | MOVC kopiert ein Datenbyte aus dem Programmspeicher in den Akkumulator. Die Adresse ergibt sich aus der (vorzeichenlosen) Summe aus Akkumulator und <basereg>. |
| | |
| Funktion/Format: | MOVC A,@A+DPTR |
| A := (A + DPTR) | |
| | |
| MOVC A,@A+PC | |
| PC := PC + 1 | |
| A := (A + PC) | |
| | |
| Zyklen: | 2 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl MOVX |
| Befehlsreferenz |
| Beschreibung: | MOVX kopiert Daten zwischen dem Akkumulator und einem externen Datenspeicher. Es gibt zwei Adressierungmöglichkeiten: | ||||
| Im ersten Fall liefert das Register R0 oder R1 eine 8-Bit-Adresse, die während des Schreib-/Lesezyklus gemultiplext mit den Daten an Port 0 ausgegeben wird. | |||||
| Im zweiten Fall erzeugt liefert das DPTR-Register eine 16-Bit-Adresse, deren obere Hälfte auf Port 2 erscheint (nach dem Befehl liefert Port 2 wieder die Daten aus dem zugehörigen SFR). | |||||
| | |||||
| Funktion: | <dest-byte> := <src-byte> | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Der Befehl MOVC | ||||
| Befehlsreferenz |
| Beschreibung: | MUL AB multipliziert den vorzeichenlosen 8-Bit-Wert im Akku mit dem vorzeichenlosen 8-Bit-Wert im B-Register. Die untere Hälfte des Produkts kommt in den Akku, die obere ins Register B. |
| | |
| Zyklen: | 4 |
| | |
| Flags: | Carry wird gelöscht. OV wird gesetzt, falls das Produkt größer als 0FFh ist, ansonsten gelöscht. |
| | |
| Siehe auch: | Der Befehl DIV |
| Befehlsreferenz |
| Beschreibung: | NOP tut einen Zyklus lang gar nichts (abgesehen davon, daß der PC wie bei jedem anderen Befehl auch inkrementiert wird). |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Befehlsreferenz |
| Beschreibung: | ORL führt eine ODER-Verknüpfung zwischen <dest> und <src> durch und speichert das Ergebnis in <dest>. | ||
| | |||
| Format: |
| ||
| | |||
| Siehe auch: | Befehlsreferenz | ||
| Adressierungsmodi |
| Beschreibung: | ORL führt eine bitweise ODER-Verknüpfung zwischen den angegebenen Variablen durch und speichert das Ergebnis in <dest-byte>. Wenn der Befehl verwendet wird, um einen Ausgangsport zu verändern, so wird der Wert für die Originaldaten des Ports aus dem Ausgabelatch gelesen, nicht von den Port-Pins. | ||||||
| | |||||||
| Funktion: | <dest-byte> := <dest-byte> Ú <src-byte> | ||||||
| | |||||||
| Format: |
| ||||||
| | |||||||
| Zyklen: |
| ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Die Befehle ORL C,<src-bit>, ANL, XRL | ||||||
| Befehlsreferenz | |||||||
| Adressierungsmodi |
| Beschreibung: | Ist <src-bit> gesetzt, so wird das Carry-Flag gesetzt. Ist <src-bit> nicht gesetzt, so bleibt das Carry-Flag unverändert. | ||||
| | |||||
| Format/Funktion: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß (außer Carry) | ||||
| | |||||
| Siehe auch: | Die Befehle ORL <dest-byte>,<src-byte>, ANL C,<src-bit> | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | Der Inhalt der internen RAM-Speicherzelle, die durch den Stapelzeiger SP adressiert wird, wird in das durch direct angegebene Byte kopiert. Danach wird SP um 1 vermindert. | ||
| | |||
| Funktion: |
| ||
| | |||
| Zyklen: | 2 | ||
| | |||
| Flags: | kein Einfluß | ||
| | |||
| Siehe auch: | Der Befehl PUSH | ||
| Befehlsreferenz | |||
| Adressierungsmodi |
| Beschreibung: | Der Stapelzeiger SP wird um 1 erhöht. Dann wird das durch direct angegebene Byte in die interne RAM-Speicherzelle, die durch SP adressiert wird, kopiert. | ||
| | |||
| Funktion: |
| ||
| | |||
| Zyklen: | 2 | ||
| | |||
| Flags: | kein Einfluß | ||
| | |||
| Siehe auch: | Der Befehl POP | ||
| Befehlsreferenz | |||
| Adressierungsmodi |
| Beschreibung: | Rückkehr aus einem Unterprogramm. Der Befehlszähler PC wird vom Stapel geholt und SP entsprechend vermindert. Dies bedeutet i.a., daß die Programmausführung mit der auf ACALL bzw. LCALL folgenden Anweisung fortgesetzt wird. | ||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Der Befehl RETI | ||||
| Befehlsreferenz |
| Beschreibung: | Rückkehr aus einem Interrupt-Routine. Der Befehlszähler PC wird vom Stapel geholt und SP entsprechend vermindert. Dies bedeutet, daß die Programmausführung mit der auf den Interrupt-Request folgenden Anweisung fortgesetzt wird. Weiterhin wird der Zustand der Interrupt-Logik wiederhergestellt, so daß nun ein weiterer Interrupt mit gleicher oder niedrigerer Priorität bearbeitet werden kann. | ||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Zyklen: | 2 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Der Befehl RET | ||||
| Befehlsreferenz |
| Beschreibung: | Die acht Akkumulator-Bits werden um eine Position nach links rotiert. Hierbei kommt Bit 7 an die Position von Bit 0. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 1 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehle RLC, RR, RRC | |||
| Befehlsreferenz |
| Beschreibung: | Die acht Akkumulator-Bits und das Carry-Flag werden um eine Position nach links rotiert. Hierbei kommt Bit 7 des Akkus ins Carry-Flag und der Inhalt des Carry-Flags an die Position von Bit 0. | ||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Die Befehle RL, RR, RRC | ||||
| Befehlsreferenz |
| Beschreibung: | Die acht Akkumulator-Bits werden um eine Position nach rechts rotiert. Hierbei kommt Bit 0 an die Position von Bit 7. | |||
| | ||||
| Funktion: |
| |||
| | ||||
| Zyklen: | 1 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Die Befehle RRC, RL, RLC | |||
| Befehlsreferenz |
| Beschreibung: | Die acht Akkumulator-Bits und das Carry-Flag werden um eine Position nach rechts rotiert. Hierbei kommt das Carry-Flag in Bit 7 des Akkus und Bit 0 ins Carry-Flag. | ||||
| | |||||
| Funktion: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | kein Einfluß | ||||
| | |||||
| Siehe auch: | Die Befehle RR, RL, RLC | ||||
| Befehlsreferenz |
| Beschreibung: | Das angegebene Bit wird gesetzt (mit 1 geladen). |
| | |
| Funktion: | bit := 1 |
| | |
| Format: | bit kann jedes direkt adressierbare Bit oder C (Carry-Flag) sein. |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl CLR bit |
| Befehlsreferenz | |
| Adressierungsmodi |
| Beschreibung: | SJMP springt zum angegebenen Sprungziel. Das Sprungziel wird aus dem gegebenen vorzeichenbehafteten Offset und dem PC (nach Ausführung des Befehls) berechnet. Der Offset wird vom Assembler automatisch aus einer Zieladresse berechnet. | ||
| | |||
| Funktion: |
| ||
| | |||
| Zyklen: | 2 | ||
| | |||
| Flags: | kein Einfluß | ||
| | |||
| Siehe auch: | Die Befehe AJMP, LJMP | ||
| Befehlsreferenz |
| Beschreibung: | SUBB subtrahiert die angegebene Byte-Variable und das Carry-Flag vom Akkumulator. Das Ergebnis kommt wieder in den Akkumulator. | ||||
| | |||||
| Funktion: | A := A - C - <src-byte> | ||||
| | |||||
| Format: |
| ||||
| | |||||
| Zyklen: | 1 | ||||
| | |||||
| Flags: | Carry bzw. Auxiliary-carry werden gesetzt, wenn ein Übertrag (Borrow) für Bit 7 bzw. Bit 3 stattfindet, andernfalls gelöscht. | ||||
| OV wird gesetzt, wenn ein Übertrag für Bit 6, aber nicht für Bit 7 stattfindett oder umgekehrt ein Übertrag für Bit 7, aber nicht für Bit 6. Andernfalls wird OV zurückgesetzt. Bei der Subtraktion von vorzeichenbehafteten Zahlen zeigt OV an, daß ein negatives Ergebnis aus der Differenz einer positiven und einer negativen Zahl entstanden ist, oder ein positives Ergebnis aus der Differenz einer negativen und einer positiven Zahl. | |||||
| | |||||
| Siehe auch: | Der Befehl ADDC | ||||
| Befehlsreferenz | |||||
| Adressierungsmodi |
| Beschreibung: | Das obere und das untere Akkumulator-Nibble (Halbbyte) werden vertauscht.. |
| | |
| Funktion: | A[3...0] « A[7...4] |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Befehlsreferenz |
| Beschreibung: | Der Inhalt des Akkumulators und des angegebenen <byte> werden vertauscht. | |||
| | ||||
| Funktion: | A « <byte> | |||
| | ||||
| Format: |
| |||
| | ||||
| Zyklen: | 1 | |||
| | ||||
| Flags: | kein Einfluß | |||
| | ||||
| Siehe auch: | Der Befehl XCHD | |||
| Befehlsreferenz | ||||
| Adressierungsmodi |
| Beschreibung: | Die untere Hälfte des Akkumulators und des durch Ri angegebenen Bytes werden vertauscht. |
| | |
| Funktion: | A[3...0] « (Ri)[3...0] |
| | |
| Zyklen: | 1 |
| | |
| Flags: | kein Einfluß |
| | |
| Siehe auch: | Der Befehl XCH |
| Befehlsreferenz |
| Beschreibung: | XRL führt eine bitweise EXKLUSIV-ODER-Verknüpfung zwischen den angegebenen Variablen durch und speichert das Ergebnis in <dest-byte>. Wenn der Befehl verwendet wird, um einen Ausgangsport zu verändern, so wird der Wert für die Originaldaten des Ports aus dem Ausgabelatch gelesen, nicht von den Port-Pins. | ||||||
| | |||||||
| Funktion: | <dest-byte> := <dest-byte> xor <src-byte> | ||||||
| | |||||||
| Format: |
| ||||||
| | |||||||
| Zyklen: |
| ||||||
| | |||||||
| Flags: | kein Einfluß | ||||||
| | |||||||
| Siehe auch: | Die Befehle ANL, ORL | ||||||
| Befehlsreferenz | |||||||
| Adressierungsmodi |