private void analyseRegisters(String line) throws AssemblerException {

		if (line.trim().length() == 0)
			return;

		line = line.trim();

		// Valid register expression:
		// (!space)+ space+ (!space)+
		boolean legitRegExp = Pattern.matches("[^\\s]+\\s+[^\\s]+", line);

		if (!legitRegExp)
			throw new AssemblerException(
					"Registers error: Syntax error, <registerName> <value><B/H/I> expected. For example:\n"
							+ "\n" 
							+ "eax    000B");

		String[] tokens = line.split("\\s+");

		String regName = tokens[0];
		String valueAndBase = tokens[1];		
		String regValue = getBinaryFromBase(valueAndBase);
		
		if(data.getRegisterHash().get(regName) != null)
			throw new AssemblerException("Registers error: Register \"" + regName + "\" already defined.");
		
		data.getRegisterHash().put(regName, regValue);
	}