@Override
	public Address subtractNoWrap(Address addr, long displacement) throws AddressOverflowException {
		if (displacement < 0) {
			if (displacement == Long.MIN_VALUE) {
				throw new AddressOverflowException("Address Overflow in subtract: " + addr +
					" - 0x" + Long.toHexString(displacement));
			}
			return addNoWrap(addr, -displacement);
		}

		testAddressSpace(addr);
		if (displacement > spaceSize && spaceSize != 0) {
			throw new AddressOverflowException(
				"Address Overflow in subtract: " + addr + " - 0x" + Long.toHexString(displacement));
		}
		long addrOff = addr.getOffset();
		long result = addrOff - displacement;

		// An integer underflow occurred if:
		//   1) the result is less than the address space's min address, or
		//   2) if the result is greater than the starting addr
		if (signed) {
			if (result < minAddress.getOffset() || result > addrOff) {
				throw new AddressOverflowException(
					String.format("Address Overflow in subtract: %s - 0x%x", addr, displacement));
			}
		}
		else {
			if (Long.compareUnsigned(addrOff, result) < 0) {
				throw new AddressOverflowException(
					String.format("Address Overflow in subtract: %s - 0x%x", addr, displacement));
			}
		}
		return getUncheckedAddress(result);
	}
Returns the unique id value for this space.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/address/AbstractAddressSpace.java