private void verifyBranches() throws AssemblyException {
		int maxLabelLength = 0;
		for (int i = 0; i < lines.size(); ++i) {
			String label = lines.get(i).label;
			if (label != null) {
				if (label.length() > maxLabelLength)
					maxLabelLength = label.length();
				if (branches.containsKey(label))
					throw new AssemblyException("Duplicate label " + label);
				if (lines.get(i).opCode != OpCode.DC)
					branches.put(label, i);
			}
		}
		for (InterpretedLine l : lines)
			if (OpCode.isBranch(l.opCode) && !branches.containsKey(l.loc))
				throw new AssemblyException("Undefined branch " + l.loc);
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < maxLabelLength + 3; ++i)
			sb.append(' ');
		spaces = sb.toString();
	}