@Override
	public String toString(boolean showAddressSpace, int minNumDigits) {

		boolean stackFormat = false;
		StringBuilder buf = new StringBuilder();
		if (addrSpace.isStackSpace()) {
			stackFormat = true;
			buf.append("Stack[");
			minNumDigits = 1;
		}
		else if (showAddressSpace) {
			buf.append(addrSpace.toString());
		}

		int unitSize = addrSpace.isStackSpace() ? 1 : addrSpace.getAddressableUnitSize();
		int maxDigitsSizeForSpace = ((addrSpace.getSize() - 1) / 4) + 1;
//		if (unitSize > 1) {
//			maxDigitsSizeForSpace /= 2;	//addressSpaces with unitsize > 1, have twice the bitSize that they 
//										// should to account for bits for the mod part.
//		}

		int padSize = Math.min(minNumDigits, maxDigitsSizeForSpace);

		long displayOffset = offset;
		if (stackFormat) {
			if (displayOffset < 0) {
				buf.append("-");
				displayOffset = -displayOffset;
			}
			buf.append("0x");
		}
		long mod = 0;
		if (unitSize > 1) {
			mod = displayOffset % unitSize;
			displayOffset = addrSpace.getAddressableWordOffset(displayOffset);
		}

		String addressString = Long.toHexString(displayOffset);
		int numHexDigits = addressString.length();
		int numZerosToPad = Math.max(padSize - numHexDigits, 0);
		for (int i = 0; i < numZerosToPad; i++) {
			buf.append('0');
		}
		buf.append(addressString);
		if (mod != 0) {
			buf.append('.');
			buf.append(mod);
		}
		if (stackFormat) {
			buf.append("]");
		}
		return buf.toString();
	}
Constructs a new Generic address with the given offset within the given address space
@param addrSpace The Address space of the new address
@param offset the offset within the space for the new address
@throws AddressOutOfBoundsException if the offset is less than 0 or greater
than the max offset allowed for this space.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/address/GenericAddress.java