public Object[] displayDataWords(boolean hex) {
		int bits = (int)(Math.ceil(Helpers.log(size, (hex)? 16 : 10)));
		String[] headers = {"Address", "Word"}; 
		
		int length = 0;
		for (int a : memory.keySet())
			if (a % 2 == 0 && getWord(a) != 0)
				length++;
		
		String[][] data = new String[length][2];
		int i = 0;
		for (int address : memory.keySet()){
			if (address % 2 == 1 || getWord(address) == 0)
				continue;
			data[i][0] = String.format((hex)? "0x%0" + bits + "X" : "%d", address);
			data[i][1] = String.format((hex)? "0x%04X" : "%d", getWord(address));
			i++;
		}
		String accesses = String.format("%-20s : %d\n%-20s : %d", "Instruction accesses", instructionAccesses, "Data accesses", dataAccesses);
		return new Object[]{data, headers, accesses};
	}