/* Address operands are always used in instructions that control program flow, because they ensure that the UDVM bytecode is position- independent code (i.e., it will run independently of where it is placed in the UDVM memory).  */
static int decode_udvm_address_operand(guint8 *buff, guint operand_address, guint16 *value, guint current_address)
/* Address operands are always used in instructions that control program flow, because they ensure that the UDVM bytecode is position- independent code (i.e., it will run independently of where it is placed in the UDVM memory).  */
static int decode_udvm_address_operand(guint8 *buff, guint operand_address, guint16 *value, guint current_address)
{
    guint32 result;
    guint16 value1;
    guint   next_opreand_address;
    next_opreand_address = decode_udvm_multitype_operand(buff, operand_address, &value1);
    result = value1 & 0xffff;
    result = result + current_address;
    *value = result & 0xffff;
    return next_opreand_address;
}