Unterstützte Opcodes

OpcodeBefehl Beschreibung
0x00nop keine Aktion
0x01ajmp 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.
0x02ljmp adr16 Springt zu der 16-Bit Adresse adr16
0x03rr a Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht
0x04inc a Addiert 1 zum Inhalt des Akku-Registers
0x05inc dadr Addiert 1 zum Inhalt der Speicherstelle dadr
0x05inc @r0 Addiert 1 zum Inhalt der Speicherstelle auf die @r0 zeigt
0x06inc @r1 Addiert 1 zum Inhalt der Speicherstelle auf die @r1 zeigt
0x08inc r0 Addiert 1 zum Inhalt des r0-Registers
0x09inc r1 Addiert 1 zum Inhalt des r1-Registers
0x0Ainc r2 Addiert 1 zum Inhalt des r2-Registers
0x0Binc r3 Addiert 1 zum Inhalt des r3-Registers
0x0Cinc r4 Addiert 1 zum Inhalt des r4-Registers
0x0Dinc r5 Addiert 1 zum Inhalt des r5-Registers
0x0Einc r6 Addiert 1 zum Inhalt des r6-Registers
0x0Finc r7 Addiert 1 zum Inhalt des r7-Registers
0x10jbc badr,rel Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel und löscht das Bit.
0x11acall 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.
0x12lcall adr16 Speichert die Adresse des nächsten Befehls auf dem Stack und springt zu der Befehlsadresse adr16.
0x13rrc a Rotiert den Inhalt der Akku-Registers um eine Stelle nach recht über das Carry-Flag
0x14dec a Subtrahiert 1 vom Inhalt des Akku-Registers
0x15dec dadr Subtrahiert 1 vom Inhalt der Speicherstelle dadr
0x16dec @r0 Subtrahiert 1 vom Inhalt der Speicherstelle auf die @r0 zeigt
0x17dec @r1 Subtrahiert 1 vom Inhalt der Speicherstelle auf die @r1 zeigt
0x18dec r0 Subtrahiert 1 vom Inhalt des r0-Registers
0x19dec r1 Subtrahiert 1 vom Inhalt des r1-Registers
0x1Adec r2 Subtrahiert 1 vom Inhalt des r2-Registers
0x1Bdec r3 Subtrahiert 1 vom Inhalt des r3-Registers
0x1Cdec r4 Subtrahiert 1 vom Inhalt des r4-Registers
0x1Ddec r5 Subtrahiert 1 vom Inhalt des r5-Registers
0x1Edec r6 Subtrahiert 1 vom Inhalt des r6-Registers
0x1Fdec r7 Subtrahiert 1 vom Inhalt des r7-Registers
0x20jb badr,rel Ist das Bit badr gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel.
0x21ajmp 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.
0x22ret Setzt das Programm an der, auf dem Stack gespeicherten Adresse fort und verringert der Stack-Pointer um 2.
0x23rl a Rotiert den Inhalt der Akku-Registers um eine Stelle nach links
0x24add a,#const8 Addiert die Zahl #const8 zum Akku-Register
0x25add a,dadr Addiert den Wert an der Speicherstelle dadr zum Akku-Register
0x26add a,@r0 Addiert den Wert an der Speicherstelle auf die @r0 zeigt zum Akku-Register
0x27add a,@r1 Addiert den Wert an der Speicherstelle auf die @r1 zeigt zum Akku-Register
0x28add a,r0 Addiert den Wert in dem Register r0 zum Akku-Register
0x29add a,r1 Addiert den Wert in dem Register r1 zum Akku-Register
0x2Aadd a,r2 Addiert den Wert in dem Register r2 zum Akku-Register
0x2Badd a,r3 Addiert den Wert in dem Register r3 zum Akku-Register
0x2Cadd a,r4 Addiert den Wert in dem Register r4 zum Akku-Register
0x2Dadd a,r5 Addiert den Wert in dem Register r5 zum Akku-Register
0x2Eadd a,r6 Addiert den Wert in dem Register r6 zum Akku-Register
0x2Fadd a,r7 Addiert den Wert in dem Register r7 zum Akku-Register
0x30jnb badr,rel Ist das Bit badr nicht gesetzt, dann springt dieser Befehl zu der Befehlsadresse rel.
0x31acall 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.
0x32reti Setzt das Programm an der, auf dem Stack gespeicherten Adresse fort, verringert der Stack-Pointer um 2 und beendet den Status der Interrupt-Verarbeitung.
0x33rlc a Rotiert den Inhalt der Akku-Registers um eine Stelle nach links über das Carry-Flag
0x34addc 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.
0x35addc 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.
0x36addc 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.
0x37addc 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.
0x38addc 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.
0x39addc 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.
0x3Aaddc 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.
0x3Baddc 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.
0x3Caddc 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.
0x3Daddc 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.
0x3Eaddc 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.
0x3Faddc 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.
0x40jc rel Setzt das Programm, wenn das Carry-Flag gesetzt ist, an der Stelle rel fort.
0x41ajmp 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.
0x42orl 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.
0x43orl 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.
0x44orl a,#const8 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register.
0x45orl 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.
0x46orl 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.
0x47orl 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.
0x48orl a,r0 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register.
0x49orl a,r1 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register.
0x4Aorl a,r2 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register.
0x4Borl a,r3 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register.
0x4Corl a,r4 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register.
0x4Dorl a,r5 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register.
0x4Eorl a,r6 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register.
0x4Forl a,r7 Bildet die logische Oder-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register.
0x50jc rel Setzt das Programm, wenn das Carry-Flag nicht gesetzt ist, an der Stelle rel fort.
0x51acall 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.
0x52anl 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.
0x53anl 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.
0x54anl a,#const8 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register.
0x55anl 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.
0x56anl 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.
0x57anl 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.
0x58anl a,r0 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register.
0x59anl a,r1 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register.
0x5Aanl a,r2 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register.
0x5Banl a,r3 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register.
0x5Canl a,r4 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register.
0x5Danl a,r5 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register.
0x5Eanl a,r6 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register.
0x5Fanl a,r7 Bildet die logische Und-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register.
0x60jz rel Setzt das Programm, wenn Akku-Register auf 0 steht, an der Stelle rel fort.
0x61ajmp 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.
0x62xrl 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.
0x63xrl 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.
0x64xrl a,#const8 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und der Konstanten const8 und speichert das Ergebnis im Akku-Register.
0x65xrl 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.
0x66xrl 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.
0x67xrl 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.
0x68xrl a,r0 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r0-Register und speichert das Ergebnis im Akku-Register.
0x69xrl a,r1 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r1-Register und speichert das Ergebnis im Akku-Register.
0x6Axrl a,r2 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r2-Register und speichert das Ergebnis im Akku-Register.
0x6Bxrl a,r3 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r3-Register und speichert das Ergebnis im Akku-Register.
0x6Cxrl a,r4 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r4-Register und speichert das Ergebnis im Akku-Register.
0x6Dxrl a,r5 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r5-Register und speichert das Ergebnis im Akku-Register.
0x6Exrl a,r6 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r6-Register und speichert das Ergebnis im Akku-Register.
0x6Fxrl a,r7 Bildet die logische Exklusiv-Oder-Verknüpfung zwischen dem Akku-Register und dem r7-Register und speichert das Ergebnis im Akku-Register.
0x70jnz rel Setzt das Programm, wenn Akku-Register nicht auf 0 steht, an der Stelle rel fort.
0x71acall 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.
0x72orl 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.
0x73jmp @a+dptr Setzt das Progamm an der Stelle fort, die sich durch das Addieren des Inhalts des Akku-Registers und des Data-Pointers ergibt.
0x74mov a,#const8 Schreibt die Zahl const8 in das Akku-Register
0x75mov dadr,#const8 Schreibt die Zahl const8 an die Speicherstelle dadr
0x76mov @r0,#const8 Schreibt die Zahl const8 an die Speicherstelle auf die @r0 zeigt
0x77mov @r1,#const8 Schreibt die Zahl const8 an die Speicherstelle auf die @r1 zeigt
0x78mov r0,#const8 Schreibt die Zahl const8 in das r0-Register
0x79mov r1,#const8 Schreibt die Zahl const8 in das r1-Register
0x7Amov r2,#const8 Schreibt die Zahl const8 in das r2-Register
0x7Bmov r3,#const8 Schreibt die Zahl const8 in das r3-Register
0x7Cmov r4,#const8 Schreibt die Zahl const8 in das r4-Register
0x7Dmov r5,#const8 Schreibt die Zahl const8 in das r5-Register
0x7Emov r6,#const8 Schreibt die Zahl const8 in das r6-Register
0x7Fmov r7,#const8 Schreibt die Zahl const8 in das r7-Register
0x80sjmp rel Setzt das Programm an der Stelle rel fort.
0x81ajmp 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.
0x82anl 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.
0x83movc 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.
0x84div 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.
0x85mov dadr1,dadr2 Kopiert den Inhalt der Speicherstelle dadr1 in die Speicherstelle dadr2
0x86mov dadr,@r0 Kopiert den Inhalt der Speicherstelle auf die @r0 zeigt an die Speicherstelle dadr
0x87mov dadr,@r1 Kopiert den Inhalt der Speicherstelle auf die @r1 zeigt an die Speicherstelle dadr
0x88mov dadr,r0 Kopiert den Inhalt des Registers r0 an die Speicherstelle dadr
0x89mov dadr,r1 Kopiert den Inhalt des Registers r1 an die Speicherstelle dadr
0x8Amov dadr,r2 Kopiert den Inhalt des Registers r2 an die Speicherstelle dadr
0x8Bmov dadr,r3 Kopiert den Inhalt des Registers r3 an die Speicherstelle dadr
0x8Cmov dadr,r4 Kopiert den Inhalt des Registers r4 an die Speicherstelle dadr
0x8Dmov dadr,r5 Kopiert den Inhalt des Registers r5 an die Speicherstelle dadr
0x8Emov dadr,r6 Kopiert den Inhalt des Registers r6 an die Speicherstelle dadr
0x8Fmov dadr,r7 Kopiert den Inhalt des Registers r7 an die Speicherstelle dadr
0x90mov DPTR,#const16 Kopiert die Zahl const16 in das DPTR-Register
0x91acall 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.
0x92mov badr,c Setzt bzw. löscht das Bit badr, wenn das Carry-Flag gesetzt bzw. gelöscht ist.
0x93movc a,@a+dptr Speichert den Inhalt der Speicherstelle, auf den die Summe aus Akku-Register und dptr zeigen im Akku-Register.
0x94subb a,#const8 Subtrahiert die Zahl #const8 vom Akku-Register
Ist vor dem Aufruf Carry gesetzt, wird das Akku-Register um 1 zusätzlich verringert.
0x95subb 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.
0x96subb 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.
0x97subb 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.
0x98subb 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.
0x99subb 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.
0x9Asubb 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.
0x9Bsubb 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.
0x9Csubb 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.
0x9Dsubb 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.
0x9Esubb 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.
0x9Fsubb 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.
0xA0orl 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.
0xA1ajmp 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.
0xA2mov c,badr Setzt bzw. löscht das Carry-Flag, wenn das Bit badr gesetzt bzw. gelöscht ist.
0xA3inc DPTR Addiert 1 zum Inhalt des DPTR-Register
0xA4mul 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)
0xA6mov @r0,dadr Kopiert den Inhalt von der Speicherstelle dadr an die Speicherstelle auf die @r0 zeigt
0xA7mov @r1,dadr Kopiert den Inhalt von der Speicherstelle dadr an die Speicherstelle auf die @r1 zeigt
0xA8mov r0,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r0-Register
0xA9mov r1,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r1-Register
0xAAmov r2,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r2-Register
0xABmov r3,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r3-Register
0xACmov r4,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r4-Register
0xADmov r5,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r5-Register
0xAEmov r6,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r6-Register
0xAFmov r7,dadr Kopiert den Inhalt von der Speicherstelle dadr in das r7-Register
0xB0anl 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.
0xB1acall 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.
0xB2cpl 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
0xB3cpl 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
0xB4cjne 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.
0xB5cjne 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.
0xB6cjne @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.
0xB7cjne @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.
0xB8cjne 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.
0xB9cjne 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.
0xBAcjne 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.
0xBBcjne 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.
0xBCcjne 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.
0xBDcjne 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.
0xBEcjne 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.
0xBFcjne 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.
0xC0push dadr Erhöht das SP-Register um eins und speichert den Inhalt der Speicherstelle dard in der Speicherstelle auf die SP zeigt.
0xC1ajmp 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.
0xC2clr badr Löscht das Bit badr.
0xC3clr c Löscht das Carry-Flag
0xC4swap a Vertauscht die Bytehälften des Bytes im Akku-Register
0xC5xch a,dadr Vertauscht den Inhalt von Akku-Register und der Speicherstelle dadr
0xC6xch a,@r0 Vertauscht den Inhalt von Akku-Register und der Speicherstelle auf die @r0 zeigt
0xC7xch a,@r1 Vertauscht den Inhalt von Akku-Register und der Speicherstelle auf die @r1 zeigt
0xC8xch a,r0 Vertauscht den Inhalt von Akku-Register und dem r0-Register
0xC9xch a,r1 Vertauscht den Inhalt von Akku-Register und dem r1-Register
0xCAxch a,r2 Vertauscht den Inhalt von Akku-Register und dem r2-Register
0xCBxch a,r3 Vertauscht den Inhalt von Akku-Register und dem r3-Register
0xCCxch a,r4 Vertauscht den Inhalt von Akku-Register und dem r4-Register
0xCDxch a,r5 Vertauscht den Inhalt von Akku-Register und dem r5-Register
0xCExch a,r6 Vertauscht den Inhalt von Akku-Register und dem r6-Register
0xCFxch a,r7 Vertauscht den Inhalt von Akku-Register und dem r7-Register
0xD0pop dadr Speichert den Inhalt der Speicherstelle auf die SP zeigt in der Speicherstelle dard und verringert das SP-Register um eins.
0xD1acall 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.
0xD2setb badr Setzt das Bit badr.
0xD3setb c Setzt das Carry-Flag
0xD4da a Korrigert die BCD-Zahl im Akku-Register nach einer Addition
0xD5djnz 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.
0xD6xchd a,@r0 Vertauscht die unteren Bytehälften von Akku-Register und der Speicherstelle auf die @r0 zeigt
0xD7xchd a,@r1 Vertauscht die unteren Bytehälften von Akku-Register und der Speicherstelle auf die @r1 zeigt
0xD8djnz 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.
0xD9djnz 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.
0xDAdjnz 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.
0xDBdjnz 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.
0xDCdjnz 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.
0xDDdjnz 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.
0xDEdjnz 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.
0xDFdjnz 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.
0xE0movx a,@dptr Kopiert den Inhalt der Speicherstelle im externen Speicher auf die @dptr zeigt in das Akku-Register
0xE1ajmp 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.
0xE2movx 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.
0xE3movx 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.
0xE4clr a Setzt das Akku-Register auf 0.
0xE5mov a,dadr Kopiert den Inhalt von der Speicherstelle dadr in das Akku-Register
0xE6mov a,@r0 Kopiert den Inhalt von der Speicherstelle auf die @r0 zeigt in das Akku-Register
0xE7mov a,@r1 Kopiert den Inhalt von der Speicherstelle auf die @r1 zeigt in das Akku-Register
0xE8mov a,r0 Kopiert den Inhalt vom Register r0 in das Akku-Register
0xE9mov a,r1 Kopiert den Inhalt vom Register r1 in das Akku-Register
0xEAmov a,r2 Kopiert den Inhalt vom Register r2 in das Akku-Register
0xEBmov a,r3 Kopiert den Inhalt vom Register r3 in das Akku-Register
0xECmov a,r4 Kopiert den Inhalt vom Register r4 in das Akku-Register
0xEDmov a,r5 Kopiert den Inhalt vom Register r5 in das Akku-Register
0xEEmov a,r6 Kopiert den Inhalt vom Register r6 in das Akku-Register
0xEFmov a,r7 Kopiert den Inhalt vom Register r7 in das Akku-Register
0xF0movx @dptr,a Kopiert den Inhalt des Akku-Registers an die Speicherstelle im externen Speicher auf die @dptr zeigt
0xF1acall 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.
0xF2movx @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.
0xF3movx @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.
0xF4cpl a Bildet das Einer-Komplement des Akku-Registers.
0xF5mov dadr,a Kopiert den Inhalt des Akku-Registers an die Speicherstelle dadr
0xF6mov @r0,a Kopiert den Inhalt des Akku-Registers an die Speicherstelle auf die @r0 zeigt
0xF7mov @r1,a Kopiert den Inhalt des Akku-Registers an die Speicherstelle auf die @r1 zeigt
0xF8mov r0,a Kopiert den Inhalt des Akku-Registers in das r0-Register
0xF9mov r1,a Kopiert den Inhalt des Akku-Registers in das r1-Register
0xFAmov r2,a Kopiert den Inhalt des Akku-Registers in das r2-Register
0xFBmov r3,a Kopiert den Inhalt des Akku-Registers in das r3-Register
0xFCmov r4,a Kopiert den Inhalt des Akku-Registers in das r4-Register
0xFDmov r5,a Kopiert den Inhalt des Akku-Registers in das r5-Register
0xFEmov r6,a Kopiert den Inhalt des Akku-Registers in das r6-Register
0xFFmov r7,a Kopiert den Inhalt des Akku-Registers in das r7-Register