public UC(ILog logger, Dictionary <int, int> linhaBinarioXCodigo) { logger = logger == null ? new Logger() : logger; _logger = logger; _linhaBinarioXCodigo = linhaBinarioXCodigo; Registradores = new Registradores(); BarramentoA = new Barramento(logger); BarramentoB = new Barramento(logger); Ula = new ULA(); ConectaConectoresAoComponente(Portas.Ula.EntradaUla, -1, BarramentoA, Ula); ConectaConectoresAoComponente(Portas.Ula.EntradaX, -1, BarramentoA, Ula.X); ConectaConectoresAoComponente(-1, Portas.Ula.SaidaAc, BarramentoA, Ula.AC); Registradores.PC = ConfiguraRegistrador(Portas.PC.Entrada, Portas.PC.Saida, "0", "PC", BarramentoA); Registradores.MAR = ConfiguraRegistrador(Portas.Mar.Entrada, -1, null, "MAR", BarramentoA); Registradores.MBR = ConfiguraRegistrador(Portas.Mbr.Entrada, Portas.Mbr.Saida, null, "MBR", BarramentoA); Registradores.AX = ConfiguraRegistrador(Portas.Ax.Entrada, Portas.Ax.Saida, null, "AX", BarramentoA); Registradores.BX = ConfiguraRegistrador(Portas.Bx.Entrada, Portas.Bx.Saida, null, "BX", BarramentoA); Registradores.CX = ConfiguraRegistrador(Portas.Cx.Entrada, Portas.Cx.Saida, null, "CX", BarramentoA); Registradores.DX = ConfiguraRegistrador(Portas.Dx.Entrada, Portas.Dx.Saida, null, "DX", BarramentoA); Registradores.IR = ConfiguraIr(Portas.Ir.Entrada, -1, BarramentoA); IR = Registradores.IR; ConectaConectoresAoComponente(Portas.Ir.EntradaP1, Portas.Ir.SaidaP1, BarramentoA, Registradores.IR.P1); ConectaConectoresAoComponente(Portas.Ir.EntradaP2, Portas.Ir.SaidaP2, BarramentoA, Registradores.IR.P2); Memoria = new Memoria(Registradores.MAR, Registradores.MBR, logger); }
private IR ConfiguraIr(int numEntrada, int numSaida, Barramento barramento) { var registrador = new IR(); // Adiciona Conectores no Barramento ConectaConectoresAoComponente(numEntrada, numSaida, barramento, registrador); return(registrador); }