The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR) or just part of the instruction sequencer, is a processor register that indicates where a computer is in its program sequence.
In most processors, PC is incremented after fetching an instruction, and holds the memory address of (“points to”) the next instruction that would be executed. (In a processor where the incrementation precedes the fetch, PC points to the current instruction being executed.)
Instructions are usually fetched sequentially from memory, but control transfer instructions change the sequence by placing a new value in PC. These include branches (sometimes called jumps), subroutine calls, and returns. A transfer that is conditional on the truth of some assertion lets the computer follow a different sequence under different conditions.
A branch provides that the next instruction is fetched from somewhere else in memory. A subroutine call not only branches but saves the preceding contents of PC somewhere. A return retrieves the saved contents of PC and places it back in PC, resuming sequential execution with the instruction following the subroutine call.
Read more about Program Counter: Hardware Implementation, Consequences in Machine Architecture, Consequences in High-level Programming
Famous quotes containing the words program and/or counter:
“screenwriter
Tony Pastor, the pioneer of vaudeville, played the theater in 1876.... He had been preceded by P.T. Barnum, and an occasional performer such as Professor Simmons, Great, Weird, Wondrous, and Invincibly Incomprehensible ... Basiliconthamaturgist.”
—State of Utah, U.S. public relief program (1935-1943)
“Often, when there is a conflict between parent and child, at its very hub is an expectation that the child should be acting differently. Sometimes these expectations run counter what is known about childrens growth. They stem from remembering oneself, but usually at a slightly older age.”
—Ellen Galinsky (20th century)