protected void formatAddress(A appender, AddressSpace addrSpace,
			ConstTpl offset, ConstTpl size) {
		if (offset.getType() != ConstTpl.REAL) {
			throw new RuntimeException("Unsupported address offset type: " + offset.getType());
		}

		long offsetValue = offset.getReal();
		if (addrSpace == null) {
			appender.appendCharacter('*');
			appender.appendAddressWordOffcut(offsetValue, 0);
			if (size.getType() != ConstTpl.J_CURSPACE_SIZE) {
				formatSize(appender, size);
			}
			return;
		}

		long sizeValue = size.getReal();
		Register reg =
			appender.getLanguage().getRegister(addrSpace.getAddress(offsetValue), (int) sizeValue);
		if (reg != null) {
			appender.appendRegister(reg);
			if (reg.getMinimumByteSize() > sizeValue) {
				appender.appendCharacter(':');
				appender.appendScalar(sizeValue);
			}
			return;
		}
		appender.appendCharacter('*');
		appender.appendCharacter('[');
		appender.appendSpace(addrSpace);
		appender.appendCharacter(']');

		long wordOffset = offsetValue / addrSpace.getAddressableUnitSize();
		long offcut = offsetValue % addrSpace.getAddressableUnitSize();
		appender.appendAddressWordOffcut(wordOffset, offcut);
		formatSize(appender, size);
		return;
	}
Format a memory variable

@param appender the appender to receive the formatted text
@param addrSpace the address space of the variable
@param offset the offset in the address space
@param size the size in bytes
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java