public void Generar() { this.Codigo.Append("\n"); foreach (Instruccion instruccion in this.CodeSegment.Instrucciones) { this.Codigo.Append(instruccion.CodigoMaquina(this.CodeSegment)); if (instruccion is Etiqueta etiqueta) { int direccionMemoria = Regex.Matches(this.Codigo.ToString(), Environment.NewLine).Count; string direccion = Memoria.CalcularDireccion(direccionMemoria); this.CodeSegment.AgregarEtiqueta(etiqueta.Identificador, direccion); } } this.Codigo.Clear(); foreach (Instruccion instruccion in this.CodeSegment.Instrucciones) { StringBuilder ins = instruccion.CodigoMaquina(this.CodeSegment); ins.TrimEnd().Append(";").AppendLine(instruccion.Linea); this.Codigo.Append(ins); } this.CodeSegment.Validar(); }