The address of the currently executing instruction is eventually added to the Imm16 field, and the result is written to the destination register.
This instruction is useful for address-independent and CQ-independent code. And because Imm16 is sign-extended, the generated address can point 32K bytes before or after the instruction.