public Function(short source, Behelter target, String action, Map<String, Byte> regmap, byte flag) // Rechner
	{
	    if (action.equals("=")) {
		target.setvalue(source);
	    }
	    if (action.equals("+")) {
		target.setvalue(target.wert + source);
	    }
	    if (action.equals("-")) {
		target.setvalue(target.wert - source);
	    }
	    if (action.equals("|")) {
		target.setvalue(target.wert | source);
	    }
	    if (action.equals("&")) {
		target.setvalue(target.wert & source);
	    }
	    if (action.equals("^")) {
		target.setvalue(target.wert ^ source);
	    }
	    if (action.equals("~")) {
		target.setvalue(~source);
	    }
	    if (action.equals("<")) {
		target.setvalue((source << 1) | (source >>> (7)));
	    }
	    if (action.equals(">")) {
		target.setvalue((source >>> 1) | (source << (7)));
	    }

	    // Bei den Flags wird von rechts nach links gezehlt
	    if ((byte) ((flag) & 8) != 0) // Zero Flag
	    {
		regmap.put("FLAG", ((target.wert & 0x00ff) == 0 ? (byte) (regmap.get("FLAG") | 8) : (byte) (regmap.get("FLAG") & 0x7f)));
	    }
	    if ((byte) ((flag) & 32) != 0) {
		regmap.put("FLAG", ((target.wert & 0x0100) != 0 ? (byte) (regmap.get("FLAG") | 32) : (byte) (regmap.get("FLAG") & 0xDF)));
	    }
	    target.setvalue(target.wert & 0xff);
	}