public static void Befehlsanalyse(CommandLine Befehl, Arbeitsspeicher RAM)
        {
            byte tempBank = (byte)(RAM.RAM[0, 3] >> 5);

            /* In dieser Klasse werden die einzelnen Befehlscodes analysiert und die passenden Funktionen aufgerufen
             * nach Befehlen die Register verändern, werden mit updateReg die Register, die auf beiden Bänken gleich sind
             * kopiert. Nach jedem Befehl wird außerdem die interrupt funktion aufgerufen, die überprüft, ob nach dem Ausführen
             * eines Befehls ein Interrupt aufgetreten ist.
             */

            if (RAM.watchdog())
            {
                return;
            }

            //SLEEP
            if ((Befehl.command & 0x3FFF) == 0x0063)
            {
                SLEEP(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); return;
            }
            //MOVLW
            if ((Befehl.command & 0x3F00) == 0x3000)
            {
                MOVLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3100)
            {
                MOVLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3200)
            {
                MOVLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3300)
            {
                MOVLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //MOVWF
            if ((Befehl.command & 0x3F80) == 0x0080)
            {
                MOVWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //MOVF
            if ((Befehl.command & 0x3F00) == 0x0800)
            {
                MOVF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //ANDLW
            if ((Befehl.command & 0x3F00) == 0x3900)
            {
                ANDLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //ANDWF
            if ((Befehl.command & 0x3F00) == 0x0500)
            {
                ANDWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //IORLW
            if ((Befehl.command & 0x3F00) == 0x3800)
            {
                IORLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //IORWF
            if ((Befehl.command & 0x3F00) == 0x0400)
            {
                IORWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //SUBLW
            if ((Befehl.command & 0x3F00) == 0x3C00)
            {
                SUBLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3D00)
            {
                SUBLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //XORLW
            if ((Befehl.command & 0x3F00) == 0x3A00)
            {
                XORLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //XORWF
            if ((Befehl.command & 0x3F00) == 0x0600)
            {
                XORWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //ADDLW
            if ((Befehl.command & 0x3F00) == 0x3E00)
            {
                ADDLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3F00)
            {
                ADDLW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //ADDWF
            if ((Befehl.command & 0x3F00) == 0x0700)
            {
                ADDWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //SUBWF
            if ((Befehl.command & 0x3F00) == 0x0200)
            {
                SUBWF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //SWAPF
            if ((Befehl.command & 0x3F00) == 0x0E00)
            {
                SWAPF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //GOTO
            if ((Befehl.command & 0x3800) == 0x2800)
            {
                g0t0(Befehl.command, RAM, tempBank);  RAM.interrupt(); return;
            }
            //CALL
            if ((Befehl.command & 0x3800) == 0x2000)
            {
                CALL(Befehl.command, RAM, tempBank);  RAM.interrupt(); return;
            }
            //NOP
            if ((Befehl.command & 0x3FFF) == 0x0000)
            {
                NOP(RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3FFF) == 0x0020)
            {
                NOP(RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3FFF) == 0x0040)
            {
                NOP(RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3FFF) == 0x0060)
            {
                NOP(RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //RETURN
            if ((Befehl.command & 0x3FFF) == 0x0008)
            {
                RETURN(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
            //RETLW
            if ((Befehl.command & 0x3F00) == 0x3400)
            {
                RETLW(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3500)
            {
                RETLW(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3600)
            {
                RETLW(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
            if ((Befehl.command & 0x3F00) == 0x3700)
            {
                RETLW(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
            //CLRF
            if ((Befehl.command & 0x3F80) == 0x0180)
            {
                CLRF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //CLRW
            if (((Befehl.command & 0x3FFF) >= 0x0100) && ((Befehl.command & 0x3FFF) <= 0x017F))
            {
                CLRW(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //RLF
            if ((Befehl.command & 0x3F00) == 0x0D00)
            {
                RLF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //RRF
            if ((Befehl.command & 0x3F00) == 0x0C00)
            {
                RRF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //COMF
            if ((Befehl.command & 0x3F00) == 0x0900)
            {
                COMF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //DECF
            if ((Befehl.command & 0x3F00) == 0x0300)
            {
                DECF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //DECFSZ
            if ((Befehl.command & 0x3F00) == 0x0B00)
            {
                DECFSZ(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //INCF
            if ((Befehl.command & 0x3F00) == 0x0A00)
            {
                INCF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //INCFSZ
            if ((Befehl.command & 0x3F00) == 0x0F00)
            {
                INCFSZ(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //BSF
            if ((Befehl.command & 0x3C00) == 0x1400)
            {
                BSF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //BCF
            if ((Befehl.command & 0x3C00) == 0x1000)
            {
                BCF(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //BTFSC
            if ((Befehl.command & 0x3C00) == 0x1800)
            {
                BTFSC(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //BTFSS
            if ((Befehl.command & 0x3C00) == 0x1C00)
            {
                BTFSS(Befehl.command, RAM, tempBank); RAM.updateBank(tempBank); RAM.interrupt(); return;
            }
            //RETFIE
            if ((Befehl.command & 0x3FFF) == 0x0009)
            {
                RETFIE(Befehl.command, RAM, tempBank); RAM.interrupt(); return;
            }
        }