public static string getInstrucao(int endereco) { foreach (var item in codigo) { if (CalculadoraBinario.BinarioParaInt(item.Substring(41, 9)) == endereco) { return(item); } } return(null); }
public int LinhaCodigoAtual() { var pc = CalculadoraBinario.BinarioParaInt(Registradores.PC.getConteudo()) - 1; int r = -1; try { r = _linhaBinarioXCodigo[pc]; } catch (Exception) {} return(r); }
private string getMemoria(string endereco) { var enderecoInt = CalculadoraBinario.BinarioParaInt(endereco); var dado = Conteudo.Where(c => c.Endereco == enderecoInt).FirstOrDefault(); if (dado == null) { return("".PadLeft(Palavras.LeitorPalavra.TamanhoPalavra, '0')); } return(dado.Conteudo); }
private void AddOuEditaMemoria(string endereco, string conteudo) { var enderecoInt = CalculadoraBinario.BinarioParaInt(endereco); var dado = Conteudo.Where(c => c.Endereco == enderecoInt).FirstOrDefault(); if (dado == null) { Conteudo.Add(new Dado { Conteudo = conteudo, Endereco = enderecoInt }); } else { dado.Conteudo = conteudo; } }
public void Rodar() { _logger.AddLog("----------------"); var codigoFirmware = Firmware.getInstrucao(_enderecoFirmware); _icc = CalculadoraBinario.BinarioParaInt(codigoFirmware[30].ToString() + codigoFirmware[31].ToString()); var comando = Palavras.LeitorPalavra.Ler(IR.getConteudo()); // indirecao if (_icc == 1) { _enderecoFirmware = Decodificador.DecodificaInstrucaoIndirecao(comando); codigoFirmware = Firmware.getInstrucao(_enderecoFirmware); } // execucao if (_icc == 2) { _enderecoFirmware = Decodificador.DecodificaInstrucaoExecucao(comando); codigoFirmware = Firmware.getInstrucao(_enderecoFirmware); } if (codigoFirmware[26] == '1') { codigoFirmware = codigoFirmware.ChangeCaracter(Decodificador.DecodificaPorta(comando.P1Valor), '1'); } if (codigoFirmware[27] == '1') { codigoFirmware = codigoFirmware.ChangeCaracter(Decodificador.DecodificaPorta(comando.P2Valor), '1'); } BarramentoA.Ciclo(codigoFirmware); Memoria.Ciclo(codigoFirmware); Ula.Ciclo(codigoFirmware); _enderecoFirmware = CalculadoraBinario.BinarioParaInt(codigoFirmware.Substring(32, 9)); }