def executa(cpu, cpuEstado):
    if (cpu_interrupcao(cpu) != "normal"):
        return
    pcAnterior = cpu.getPc()
    try:
        instrucao = cpu_instrucao(cpu)
        instrucao = instrucao.split()  #intrucao = ["comando", "argumento"]
    except:
        return
    comando = instrucao[0]

    idInstrucao = Comandos.retornaComandoId(comando)

    if (idInstrucao != -1):
        Comandos.executaComando(cpu, idInstrucao, instrucao)
        if cpu.getEstado() == "pagina indisponivel":
            return
    else:
        if (cpu.getEstado() != "memory violation"):
            cpu_salva_estado(cpu, cpuEstado)
            cpu.setEstado("Interrompido")
        return
    if (cpu.getPc() == pcAnterior
        ):  #incrementa pc caso não haja interrupção ou desvio

        incrementaPc(cpu)