The instruction pointer (also called the program counter in some computers) is a register in a computer processor which indicates where the computer is in its instructions. Depending on the details of the particular machine, it holds either the address of the instruction being executed, or the address of the next instruction to be executed.

In most processors, the instruction pointer is incremented before the instruction is executed; this means that the target address of a branch instruction is obtained by adding the branch instruction's operand to the address of the next location (byte or word, depending on the computer type) after the branch instruction.