Opcode | Befehl | Beschreibung | ||
Interner RAM | 0x74 | mov a,#const8 | Schreibt die Zahl const8 in das Akku-Register | |
0x75 | mov dadr,#const8 | Schreibt die Zahl const8 an die Speicherstelle dadr | ||
0x76 | mov @r0,#const8 | Schreibt die Zahl const8 an die Speicherstelle auf die @r0 zeigt | ||
0x77 | mov @r1,#const8 | Schreibt die Zahl const8 an die Speicherstelle auf die @r1 zeigt | ||
0x78 | mov r0,#const8 | Schreibt die Zahl const8 in das r0-Register | ||
0x79 | mov r1,#const8 | Schreibt die Zahl const8 in das r1-Register | ||
0x7A | mov r2,#const8 | Schreibt die Zahl const8 in das r2-Register | ||
0x7B | mov r3,#const8 | Schreibt die Zahl const8 in das r3-Register | ||
0x7C | mov r4,#const8 | Schreibt die Zahl const8 in das r4-Register | ||
0x7D | mov r5,#const8 | Schreibt die Zahl const8 in das r5-Register | ||
0x7E | mov r6,#const8 | Schreibt die Zahl const8 in das r6-Register | ||
0x7F | mov r7,#const8 | Schreibt die Zahl const8 in das r7-Register | ||
0x85 | mov dadr1,dadr2 | Kopiert den Inhalt der Speicherstelle dadr1 in die Speicherstelle dadr2 | ||
0x86 | mov dadr,@r0 | Kopiert den Inhalt der Speicherstelle auf die @r0 zeigt an die Speicherstelle dadr | ||
0x87 | mov dadr,@r1 | Kopiert den Inhalt der Speicherstelle auf die @r1 zeigt an die Speicherstelle dadr | ||
0x88 | mov dadr,r0 | Kopiert den Inhalt des Registers r0 an die Speicherstelle dadr | ||
0x89 | mov dadr,r1 | Kopiert den Inhalt des Registers r1 an die Speicherstelle dadr | ||
0x8A | mov dadr,r2 | Kopiert den Inhalt des Registers r2 an die Speicherstelle dadr | ||
0x8B | mov dadr,r3 | Kopiert den Inhalt des Registers r3 an die Speicherstelle dadr | ||
0x8C | mov dadr,r4 | Kopiert den Inhalt des Registers r4 an die Speicherstelle dadr | ||
0x8D | mov dadr,r5 | Kopiert den Inhalt des Registers r5 an die Speicherstelle dadr | ||
0x8E | mov dadr,r6 | Kopiert den Inhalt des Registers r6 an die Speicherstelle dadr | ||
0x8F | mov dadr,r7 | Kopiert den Inhalt des Registers r7 an die Speicherstelle dadr | ||
0x90 | mov DPTR,#const16 | Kopiert die Zahl const16 in das DPTR-Register | ||
0xA6 | mov @r0,dadr | Kopiert den Inhalt von der Speicherstelle dadr an die Speicherstelle auf die @r0 zeigt | ||
0xA7 | mov @r1,dadr | Kopiert den Inhalt von der Speicherstelle dadr an die Speicherstelle auf die @r1 zeigt | ||
0xA8 | mov r0,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r0-Register | ||
0xA9 | mov r1,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r1-Register | ||
0xAA | mov r2,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r2-Register | ||
0xAB | mov r3,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r3-Register | ||
0xAC | mov r4,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r4-Register | ||
0xAD | mov r5,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r5-Register | ||
0xAE | mov r6,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r6-Register | ||
0xAF | mov r7,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das r7-Register | ||
0xE5 | mov a,dadr | Kopiert den Inhalt von der Speicherstelle dadr in das Akku-Register | ||
0xE6 | mov a,@r0 | Kopiert den Inhalt von der Speicherstelle auf die @r0 zeigt in das Akku-Register | ||
0xE7 | mov a,@r1 | Kopiert den Inhalt von der Speicherstelle auf die @r1 zeigt in das Akku-Register | ||
0xE8 | mov a,r0 | Kopiert den Inhalt vom Register r0 in das Akku-Register | ||
0xE9 | mov a,r1 | Kopiert den Inhalt vom Register r1 in das Akku-Register | ||
0xEA | mov a,r2 | Kopiert den Inhalt vom Register r2 in das Akku-Register | ||
0xEB | mov a,r3 | Kopiert den Inhalt vom Register r3 in das Akku-Register | ||
0xEC | mov a,r4 | Kopiert den Inhalt vom Register r4 in das Akku-Register | ||
0xED | mov a,r5 | Kopiert den Inhalt vom Register r5 in das Akku-Register | ||
0xEE | mov a,r6 | Kopiert den Inhalt vom Register r6 in das Akku-Register | ||
0xEF | mov a,r7 | Kopiert den Inhalt vom Register r7 in das Akku-Register | ||
0xF5 | mov dadr,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle dadr | ||
0xF6 | mov @r0,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle auf die @r0 zeigt | ||
0xF7 | mov @r1,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle auf die @r1 zeigt | ||
0xF8 | mov r0,a | Kopiert den Inhalt des Akku-Registers in das r0-Register | ||
0xF9 | mov r1,a | Kopiert den Inhalt des Akku-Registers in das r1-Register | ||
0xFA | mov r2,a | Kopiert den Inhalt des Akku-Registers in das r2-Register | ||
0xFB | mov r3,a | Kopiert den Inhalt des Akku-Registers in das r3-Register | ||
0xFC | mov r4,a | Kopiert den Inhalt des Akku-Registers in das r4-Register | ||
0xFD | mov r5,a | Kopiert den Inhalt des Akku-Registers in das r5-Register | ||
0xFE | mov r6,a | Kopiert den Inhalt des Akku-Registers in das r6-Register | ||
0xFF | mov r7,a | Kopiert den Inhalt des Akku-Registers in das r7-Register | ||
Externer RAM | 0xE0 | movx a,@dptr | Kopiert den Inhalt der Speicherstelle im externen Speicher auf die @dptr zeigt in das Akku-Register | |
0xE2 | movx a,@r0 | Kopiert den Inhalt der Speicherstelle im externen Speicher auf die P2*256+r0 zeigt in das Akku-Register. Ist der XRAM aktiv so wird die Speicherstelle aus dem XRAM auf die @r0 zeigt in das Akku-Register kopiert. | ||
0xE3 | movx a,@r1 | Kopiert den Inhalt der Speicherstelle im externen Speicher auf die P2*256+r1 zeigt in das Akku-Register. Ist der XRAM aktiv so wird die Speicherstelle aus dem XRAM auf die @r1 zeigt in das Akku-Register kopiert. | ||
0xF0 | movx @dptr,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle im externen Speicher auf die @dptr zeigt | ||
0xF2 | movx @r0,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle im externen Speicher auf die P2*256+r0 zeigt. Ist der XRAM aktiv so wird der Inhalt des Akku-Registers an die Speicherstelle des XRAMs auf die @r0 zeigt kopiert. | ||
0xF3 | movx @r1,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle im externen Speicher auf die P2*256+r1 zeigt. Ist der XRAM aktiv so wird der Inhalt des Akku-Registers an die Speicherstelle des XRAMs auf die @r1 zeigt kopiert. | ||
Interner RAM | 0xC0 | push dadr | Erhöht das SP-Register um eins und speichert den Inhalt der Speicherstelle dard in der Speicherstelle auf die SP zeigt. | |
0xC4 | swap a | Vertauscht die Bytehälften des Bytes im Akku-Register | ||
0xC5 | xch a,dadr | Vertauscht den Inhalt von Akku-Register und der Speicherstelle dadr | ||
0xC6 | xch a,@r0 | Vertauscht den Inhalt von Akku-Register und der Speicherstelle auf die @r0 zeigt | ||
0xC7 | xch a,@r1 | Vertauscht den Inhalt von Akku-Register und der Speicherstelle auf die @r1 zeigt | ||
0xC8 | xch a,r0 | Vertauscht den Inhalt von Akku-Register und dem r0-Register | ||
0xC9 | xch a,r1 | Vertauscht den Inhalt von Akku-Register und dem r1-Register | ||
0xCA | xch a,r2 | Vertauscht den Inhalt von Akku-Register und dem r2-Register | ||
0xCB | xch a,r3 | Vertauscht den Inhalt von Akku-Register und dem r3-Register | ||
0xCC | xch a,r4 | Vertauscht den Inhalt von Akku-Register und dem r4-Register | ||
0xCD | xch a,r5 | Vertauscht den Inhalt von Akku-Register und dem r5-Register | ||
0xCE | xch a,r6 | Vertauscht den Inhalt von Akku-Register und dem r6-Register | ||
0xCF | xch a,r7 | Vertauscht den Inhalt von Akku-Register und dem r7-Register | ||
0xD0 | pop dadr | Speichert den Inhalt der Speicherstelle auf die SP zeigt in der Speicherstelle dard und verringert das SP-Register um eins. | ||
0xD6 | xchd a,@r0 | Vertauscht die unteren Bytehälften von Akku-Register und der Speicherstelle auf die @r0 zeigt | ||
0xD7 | xchd a,@r1 | Vertauscht die unteren Bytehälften von Akku-Register und der Speicherstelle auf die @r1 zeigt | ||
ROM | 0x83 | movc a,@a+PC | Speichert den Inhalt der Speicherstelle, auf den die Summe aus Akku-Register und PC-Register zeigen im Akku-Register. Das PC-Register wird dabei erst um eins erhöht und dann zur Summenberechnung verwendet. | |
0x93 | movc a,@a+dptr | Speichert den Inhalt der Speicherstelle, auf den die Summe aus Akku-Register und dptr zeigen im Akku-Register. |
Opcode | Befehl | Beschreibung | |
AND | 0x52 | anl dadr,a | Bildet die logische Und-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und dem Akku-Register und speichert das Ergebnis an der Speicherstelle dadr. |
0x53 | anl dadr,#const8 | Bildet die logische Und-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und der Konstanten const8 und speichert das Ergebnis an der Speicherstelle dadr. | |
0x54 | anl a,#const8 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register. | |
0x55 | anl a,dadr | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle dard und speichert das Ergebnis im Akku-Register. | |
0x56 | anl a,@r0 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r0 zeigt und speichert das Ergebnis im Akku-Register. | |
0x57 | anl a,@r1 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r1 zeigt und speichert das Ergebnis im Akku-Register. | |
0x58 | anl a,r0 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register. | |
0x59 | anl a,r1 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register. | |
0x5A | anl a,r2 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register. | |
0x5B | anl a,r3 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register. | |
0x5C | anl a,r4 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register. | |
0x5D | anl a,r5 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register. | |
0x5E | anl a,r6 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register. | |
0x5F | anl a,r7 | Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register. | |
OR | 0x42 | orl dadr,a | Bildet die logische Oder-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und dem Akku-Register und speichert das Ergebnis an der Speicherstelle dadr. |
0x43 | orl dadr,#const8 | Bildet die logische Oder-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und der Konstanten const8 und speichert das Ergebnis an der Speicherstelle dadr. | |
0x44 | orl a,#const8 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register. | |
0x45 | orl a,dadr | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle dard und speichert das Ergebnis im Akku-Register. | |
0x46 | orl a,@r0 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r0 zeigt und speichert das Ergebnis im Akku-Register. | |
0x47 | orl a,@r1 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r1 zeigt und speichert das Ergebnis im Akku-Register. | |
0x48 | orl a,r0 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register. | |
0x49 | orl a,r1 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register. | |
0x4A | orl a,r2 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register. | |
0x4B | orl a,r3 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register. | |
0x4C | orl a,r4 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register. | |
0x4D | orl a,r5 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register. | |
0x4E | orl a,r6 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register. | |
0x4F | orl a,r7 | Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register. | |
XOR | 0x62 | xrl dadr,a | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und dem Akku-Register und speichert das Ergebnis an der Speicherstelle dadr. |
0x63 | xrl dadr,#const8 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Inhalt der Speicherstelle dadr und der Konstanten const8 und speichert das Ergebnis an der Speicherstelle dadr. | |
0x64 | xrl a,#const8 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register. | |
0x65 | xrl a,dadr | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle dard und speichert das Ergebnis im Akku-Register. | |
0x66 | xrl a,@r0 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r0 zeigt und speichert das Ergebnis im Akku-Register. | |
0x67 | xrl a,@r1 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem Inhalt der Speicherstelle auf die @r1 zeigt und speichert das Ergebnis im Akku-Register. | |
0x68 | xrl a,r0 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register. | |
0x69 | xrl a,r1 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register. | |
0x6A | xrl a,r2 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register. | |
0x6B | xrl a,r3 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register. | |
0x6C | xrl a,r4 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register. | |
0x6D | xrl a,r5 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register. | |
0x6E | xrl a,r6 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register. | |
0x6F | xrl a,r7 | Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register. | |
Complement | 0xF4 | cpl a | Bildet das Einer-Komplement des Akku-Registers. |
Löschen | 0xE4 | clr a | Setzt das Akku-Register auf 0. |
Opcode | Befehl | Beschreibung | |
Transfer | 0x92 | mov badr,c | Setzt bzw. löscht das Bit badr, wenn das Carry-Flag gesetzt bzw. gelöscht ist. |
0xA2 | mov c,badr | Setzt bzw. löscht das Carry-Flag, wenn das Bit badr gesetzt bzw. gelöscht ist. | |
AND | 0x82 | anl c,badr | Führt eine logische Und-Verknüpfung zwischen dem Bit badr und dem Carry-Flag durch und speichert das Ergebnis im Carry-Flag. |
0xB0 | anl c,\badr | Führt eine logische Und-Verknüpfung zwischen dem inversen des Bits badr und dem Carry-Flag durch und speichert das Ergebnis im Carry-Flag. | |
OR | 0x72 | orl c,badr | Führt eine logische Oder-Verknüpfung zwischen dem Bit badr und dem Carry-Flag durch und speichert das Ergebnis im Carry-Flag. |
0xA0 | orl c,\badr | Führt eine logische Oder-Verknüpfung zwischen dem inversen des Bits badr und dem Carry-Flag durch und speichert das Ergebnis im Carry-Flag. | |
Löschen | 0xC2 | clr badr | Löscht das Bit badr. |
0xC3 | clr c | Löscht das Carry-Flag | |
Complement | 0xB2 | cpl badr | Invertiert das Bit badr, d.h. das Bit wird gesetzt, wenn es vorher nicht gesetzt war und gelöscht, wenn es vorher gesetzt war |
0xB3 | cpl c | Invertiert das Carry-Flag, d.h. das Flag wird gesetzt, wenn es vorher nicht gesetzt war und gelöscht, wenn es vorher gesetzt war | |
Setzen | 0xD2 | setb badr | Setzt das Bit badr. |
0xD3 | setb c | Setzt das Carry-Flag |
Opcode | Befehl | Beschreibung | |
Addieren | 0x24 | add a,#const8 | Addiert die Zahl #const8 zum Akku-Register |
0x25 | add a,dadr | Addiert den Wert an der Speicherstelle dadr zum Akku-Register | |
0x26 | add a,@r0 | Addiert den Wert an der Speicherstelle auf die @r0 zeigt zum Akku-Register | |
0x27 | add a,@r1 | Addiert den Wert an der Speicherstelle auf die @r1 zeigt zum Akku-Register | |
0x28 | add a,r0 | Addiert den Wert in dem Register r0 zum Akku-Register | |
0x29 | add a,r1 | Addiert den Wert in dem Register r1 zum Akku-Register | |
0x2A | add a,r2 | Addiert den Wert in dem Register r2 zum Akku-Register | |
0x2B | add a,r3 | Addiert den Wert in dem Register r3 zum Akku-Register | |
0x2C | add a,r4 | Addiert den Wert in dem Register r4 zum Akku-Register | |
0x2D | add a,r5 | Addiert den Wert in dem Register r5 zum Akku-Register | |
0x2E | add a,r6 | Addiert den Wert in dem Register r6 zum Akku-Register | |
0x2F | add a,r7 | Addiert den Wert in dem Register r7 zum Akku-Register | |
0x34 | addc a,#const8 | Addiert die Zahl #const8 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x35 | addc a,dadr | Addiert den Wert an der Speicherstelle dadr zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x36 | addc a,@r0 | Addiert den Wert an der Speicherstelle auf die @r0 zeigt zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x37 | addc a,@r1 | Addiert den Wert an der Speicherstelle auf die @r1 zeigt zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x38 | addc a,r0 | Addiert den Wert in dem Register r0 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x39 | addc a,r1 | Addiert den Wert in dem Register r1 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3A | addc a,r2 | Addiert den Wert in dem Register r2 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3B | addc a,r3 | Addiert den Wert in dem Register r3 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3C | addc a,r4 | Addiert den Wert in dem Register r4 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3D | addc a,r5 | Addiert den Wert in dem Register r5 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3E | addc a,r6 | Addiert den Wert in dem Register r6 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x3F | addc a,r7 | Addiert den Wert in dem Register r7 zum Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich erhöht. |
|
0x04 | inc a | Addiert 1 zum Inhalt des Akku-Registers | |
0x05 | inc dadr | Addiert 1 zum Inhalt der Speicherstelle dadr | |
0x05 | inc @r0 | Addiert 1 zum Inhalt der Speicherstelle auf die @r0 zeigt | |
0x06 | inc @r1 | Addiert 1 zum Inhalt der Speicherstelle auf die @r1 zeigt | |
0x08 | inc r0 | Addiert 1 zum Inhalt des r0-Registers | |
0x09 | inc r1 | Addiert 1 zum Inhalt des r1-Registers | |
0x0A | inc r2 | Addiert 1 zum Inhalt des r2-Registers | |
0x0B | inc r3 | Addiert 1 zum Inhalt des r3-Registers | |
0x0C | inc r4 | Addiert 1 zum Inhalt des r4-Registers | |
0x0D | inc r5 | Addiert 1 zum Inhalt des r5-Registers | |
0x0E | inc r6 | Addiert 1 zum Inhalt des r6-Registers | |
0x0F | inc r7 | Addiert 1 zum Inhalt des r7-Registers | |
0xA3 | inc DPTR | Addiert 1 zum Inhalt des DPTR-Register | |
Dezimalanpassung | 0xD4 | da a | Korrigert die BCD-Zahl im Akku-Register nach einer Addition |
Subtrahieren | 0x94 | subb a,#const8 | Subtrahiert die Zahl #const8 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
0x95 | subb a,dadr | Subtrahiert den Wert an der Speicherstelle dadr vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x96 | subb a,@r0 | Subtrahiert den Wert an der Speicherstelle auf die @r0 zeigt vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x97 | subb a,@r1 | Subtrahiert den Wert an der Speicherstelle auf die @r1 zeigt vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x98 | subb a,r0 | Subtrahiert den Wert in dem Register r0 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x99 | subb a,r1 | Subtrahiert den Wert in dem Register r1 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9A | subb a,r2 | Subtrahiert den Wert in dem Register r2 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9B | subb a,r3 | Subtrahiert den Wert in dem Register r3 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9C | subb a,r4 | Subtrahiert den Wert in dem Register r4 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9D | subb a,r5 | Subtrahiert den Wert in dem Register r5 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9E | subb a,r6 | Subtrahiert den Wert in dem Register r6 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x9F | subb a,r7 | Subtrahiert den Wert in dem Register r7 vom Akku-Register Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert. |
|
0x14 | dec a | Subtrahiert 1 vom Inhalt des Akku-Registers | |
0x15 | dec dadr | Subtrahiert 1 vom Inhalt der Speicherstelle dadr | |
0x16 | dec @r0 | Subtrahiert 1 vom Inhalt der Speicherstelle auf die @r0 zeigt | |
0x17 | dec @r1 | Subtrahiert 1 vom Inhalt der Speicherstelle auf die @r1 zeigt | |
0x18 | dec r0 | Subtrahiert 1 vom Inhalt des r0-Registers | |
0x19 | dec r1 | Subtrahiert 1 vom Inhalt des r1-Registers | |
0x1A | dec r2 | Subtrahiert 1 vom Inhalt des r2-Registers | |
0x1B | dec r3 | Subtrahiert 1 vom Inhalt des r3-Registers | |
0x1C | dec r4 | Subtrahiert 1 vom Inhalt des r4-Registers | |
0x1D | dec r5 | Subtrahiert 1 vom Inhalt des r5-Registers | |
0x1E | dec r6 | Subtrahiert 1 vom Inhalt des r6-Registers | |
0x1F | dec r7 | Subtrahiert 1 vom Inhalt des r7-Registers | |
Multipliziren | 0xA4 | mul ab | Multipliziert den Inhalt des Akku-Register mit dem Inhalt des B-Register. Das niederwertige Ergebnisbyte wird im Akku-Register und das höherwertige Ergebnisbyte im B-Register gespeichert. |
Dividieren | 0x84 | div ab | Dividiert den Inhalt des Akku-Register durch den Inhalt des B-Register und dpeichert das Ergebnis im Akku-Register. Im B-Register wird der Divisionsrest gespeichert. |
Opcode | Befehl | Beschreibung | |
0x23 | rl a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach links | |
0x33 | rlc a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach links über das Carry-Flag | |
0x03 | rr a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht | |
0x13 | rrc a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht über das Carry-Flag |
Opcode | Befehl | Beschreibung | |
Unbedingte Sprünge | 0x02 | ljmp adr16 | Springt zu der 16-Bit Adresse adr16 |
0x80 | sjmp rel | Setzt das Programm an der Stelle rel fort. | |
0x01 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0x73 | jmp @a+dptr | Setzt das Progamm an der Stelle fort, die sich durch das Addieren des Inhalts des Akku-Registers und des Data-Pointers ergibt. | |
0x21 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0x41 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0x61 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0x81 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0xA1 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0xE1 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
Bedingte Sprünge | 0x10 | jbc badr,rel | Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel und löscht das Bit. |
0x20 | jb badr,rel | Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel. | |
0x30 | jnb badr,rel | Ist das Bit badr nicht gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel. | 0x40 | jc rel | Setzt das Programm, wenn das Carry-Flag gesetzt ist, an der Stelle rel fort. | 0x60 | jz rel | Setzt das Programm, wenn Akku-Register auf 0 steht, an der Stelle rel fort. | 0x70 | jnz rel | Setzt das Programm, wenn Akku-Register nicht auf 0 steht, an der Stelle rel fort. |
0xB4 | cjne a,#const8,rel | Springt, wenn der Inhalt des Akku-Registers ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Akku-Registers, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xB5 | cjne a,dard,rel | Springt, wenn der Inhalt des Akku-Registers ungleich dem Inhalt der Speicherstelle dard ist zu der Stelle rel. Ist der Inhalt der Speicherstelle dard größer als der Inhalt des Akku-Registers, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xB6 | cjne @r0,#const8,rel | Springt, wenn der Inhalt der Speicherstelle auf die r0 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt der Speicherstelle auf die r0 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xB7 | cjne @r1,#const8,rel | Springt, wenn der Inhalt der Speicherstelle auf die r1 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt der Speicherstelle auf die r1 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xB8 | cjne r0,#const8,rel | Springt, wenn der Inhalt des Registers r0 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r0 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xB9 | cjne r1,#const8,rel | Springt, wenn der Inhalt des Registers r1 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r1 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBA | cjne r2,#const8,rel | Springt, wenn der Inhalt des Registers r2 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r2 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBB | cjne r3,#const8,rel | Springt, wenn der Inhalt des Registers r3 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r3 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBC | cjne r4,#const8,rel | Springt, wenn der Inhalt des Registers r4 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r4 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBD | cjne r5,#const8,rel | Springt, wenn der Inhalt des Registers r5 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r5 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBE | cjne r6,#const8,rel | Springt, wenn der Inhalt des Registers r6 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r6 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xBF | cjne r7,#const8,rel | Springt, wenn der Inhalt des Registers r7 zeigt ungleich const8 ist zu der Stelle rel. Ist const8 größer als der Inhalt des Registers r7 zeigt, wird das Carry-Flag gesetzt, sonst wird es gelöscht. | |
0xD5 | djnz dadr,rel | Verringert den Inhalt der Speicherstelle dadr um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt der Speicherstelle jetzt ungleich 0 ist. | |
0xD8 | djnz r0,rel | Verringert den Inhalt des Registers r0 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r0 jetzt ungleich 0 ist. | |
0xD9 | djnz r1,rel | Verringert den Inhalt des Registers r1 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r1 jetzt ungleich 0 ist. | |
0xDA | djnz r2,rel | Verringert den Inhalt des Registers r2 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r2 jetzt ungleich 0 ist. | |
0xDB | djnz r3,rel | Verringert den Inhalt des Registers r3 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r3 jetzt ungleich 0 ist. | |
0xDC | djnz r4,rel | Verringert den Inhalt des Registers r4 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r4 jetzt ungleich 0 ist. | |
0xDD | djnz r5,rel | Verringert den Inhalt des Registers r5 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r5 jetzt ungleich 0 ist. | |
0xDE | djnz r6,rel | Verringert den Inhalt des Registers r6 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r6 jetzt ungleich 0 ist. | |
0xDF | djnz r7,rel | Verringert den Inhalt des Registers r7 um 1 und setzt das Programm an der Stelle rel fort, wenn der Inhalt von r7 jetzt ungleich 0 ist. | |
Unbedingte Verzweigungen | 0x11 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. |
0x12 | lcall adr16 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Befehlsadresse adr16. | |
0x22 | ret | Setzt das Programm an der, auf dem Stack gespeicherten Adresse fort und verringert der Stack-Pointer um 2. | |
0x31 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0x32 | reti | Setzt das Programm an der, auf dem Stack gespeicherten Adresse fort, verringert der Stack-Pointer um 2 und beendet den Status der Interrupt-Verarbeitung. | |
0x51 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0x71 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0x91 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0xB1 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0xC1 | ajmp adr11 | Springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 ajmp-Befehle. | |
0xD1 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. | |
0xF1 | acall adr11 | Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Adresse adr11. Die Zieladresse muß sich im selben 2KByte-Block befinden. Da 3 Bits der Zieladresse im Opcode codiert werden, gibt es insgesamt 8 acall-Befehle. |
Opcode | Befehl | Beschreibung | |
0x00 | nop | keine Aktion | |
0xA5 | - | (nicht belegt) |