Code that can run from any position in memory. All jumps and calls are relative to the current Program Counter. Data is referenced either via an offset from a register or via the PC as well (for constant data and self modifying code). Commonly used with processors such as the Motorola 6809 and the 680x0 (though the Motorola 68000 lacked a 32-bit relative jump, so code was limited to 32KB (or 64KB with some ordering, unless you make use of Jump Islands). The x86 uses segmented memory instead, so the programs are always loaded at a fixed offset.
2 pages link to PositionIndependentCode: