public static String getFormattedRegisterValueBits(RegisterValue value, String indent) {
		if (value == null || value.getValueMask().equals(BigInteger.ZERO)) {
			return indent + "[Instruction context has not been set]";
		}
		Register baseReg = value.getRegister();
		if (!baseReg.hasChildren()) {
			return indent + baseReg.getName() + " == 0x" +
				value.getUnsignedValueIgnoreMask().toString(16);
		}
		StringBuilder buf = new StringBuilder();
		int baseRegSize = baseReg.getMinimumByteSize() * 8;
		int paddedLen = 0;
		for (Register reg : baseReg.getChildRegisters()) {
			int len = reg.getName().length();
			if (len > paddedLen) {
				paddedLen = len;
			}
		}
		for (Register reg : baseReg.getChildRegisters()) {
			RegisterValue childActualValue = value.getRegisterValue(reg);
			if (childActualValue.hasAnyValue()) {
				int pad = paddedLen - reg.getName().length();
				BigInteger actual = childActualValue.getUnsignedValueIgnoreMask();
				int msb = baseRegSize - reg.getLeastSignificantBitInBaseRegister() - 1;
				int lsb = msb - reg.getBitLength() + 1;
				if (buf.length() != 0) {
					buf.append("\n");
				}
				buf.append(indent);
				String lsbStr = StringUtilities.pad(Integer.toString(lsb), '0', 2);
				String msbStr = StringUtilities.pad(Integer.toString(msb), '0', 2);
				String leftStr = reg.getName() + "(" + lsbStr + "," + msbStr + ")";
				leftStr = StringUtilities.pad(leftStr, ' ', -leftStr.length() - pad);
				buf.append(leftStr + " == 0x" + actual.toString(16));
			}
		}
		return buf.toString();
	}
Get formatted RegisterValue as list of child register values
@param value
@return
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/InstructionUtils.java