Opcode | Befehl | Beschreibung | |
0x00 | nop | keine Aktion | |
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. | |
0x02 | ljmp adr16 | Springt zu der 16-Bit Adresse adr16 | |
0x03 | rr a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht | |
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 | |
0x10 | jbc badr,rel | Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel und löscht das Bit. | |
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. | |
0x13 | rrc a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht über das Carry-Flag | |
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 | |
0x20 | jb badr,rel | Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel. | |
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. | |
0x22 | ret | Setzt das Programm an der, auf dem Stack gespeicherten Adresse fort und verringert der Stack-Pointer um 2. | |
0x23 | rl a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach links | |
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 | |
0x30 | jnb badr,rel | Ist das Bit badr nicht gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel. | |
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. | |
0x33 | rlc a | Rotiert den Inhalt der Akku-Registers um eine Stelle nach links über das Carry-Flag | |
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. |
0x40 | jc rel | Setzt das Programm, wenn das Carry-Flag gesetzt ist, an der Stelle rel fort. |
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. | |
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. | 0x50 | jc rel | Setzt das Programm, wenn das Carry-Flag nicht gesetzt ist, an der Stelle rel fort. |
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. | |
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. | 0x60 | jz rel | Setzt das Programm, wenn Akku-Register auf 0 steht, an der Stelle rel fort. |
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. | |
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. | 0x70 | jnz rel | Setzt das Programm, wenn Akku-Register nicht auf 0 steht, an der Stelle rel fort. |
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. | |
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. | |
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. | |
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 | |
0x80 | sjmp rel | Setzt das Programm an der Stelle rel fort. | |
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. | |
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. | |
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. | |
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. | |
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 | |
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. | |
0x92 | mov badr,c | Setzt bzw. löscht das Bit badr, wenn das Carry-Flag gesetzt bzw. gelöscht ist. | |
0x93 | movc a,@a+dptr | Speichert den Inhalt der Speicherstelle, auf den die Summe aus Akku-Register und dptr zeigen im Akku-Register. | |
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. |
|
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. | |
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. | |
0xA2 | mov c,badr | Setzt bzw. löscht das Carry-Flag, wenn das Bit badr gesetzt bzw. gelöscht ist. | |
0xA3 | inc DPTR | Addiert 1 zum Inhalt des DPTR-Register | |
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. | |
0xA5 | - | (nicht belegt) | |
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 | |
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. | |
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. | |
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 | |
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. | |
0xC0 | push dadr | Erhöht das SP-Register um eins und speichert den Inhalt der Speicherstelle dard in der Speicherstelle auf die SP zeigt. | |
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. | |
0xC2 | clr badr | Löscht das Bit badr. | |
0xC3 | clr c | Löscht das Carry-Flag | |
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. | |
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. | |
0xD2 | setb badr | Setzt das Bit badr. | |
0xD3 | setb c | Setzt das Carry-Flag | |
0xD4 | da a | Korrigert die BCD-Zahl im Akku-Register nach einer Addition | |
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. | |
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 | |
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. | |
0xE0 | movx a,@dptr | Kopiert den Inhalt der Speicherstelle im externen Speicher auf die @dptr zeigt in das Akku-Register | |
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. | |
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. | |
0xE4 | clr a | Setzt das Akku-Register auf 0. | |
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 | |
0xF0 | movx @dptr,a | Kopiert den Inhalt des Akku-Registers an die Speicherstelle im externen Speicher auf die @dptr zeigt | |
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. | |
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. | |
0xF4 | cpl a | Bildet das Einer-Komplement des Akku-Registers. | |
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 |