public void StartAssembly(List <Node> nodes) { helper.BeginScope(); LabeledBlock entryPoint = getEntryPoint(nodes); AssembleLabel(entryPoint); nodes.Remove(entryPoint); foreach (Node n in nodes) { if (n is LabeledBlock) { AssembleLabel((LabeledBlock)n); } } helper.EndScope(assembler); assembler.FixLabels(helper); }