程式計數器是用於存放下一條指令所在單元的地址的地方。
為了保證程式(在作業系統中理解為進程)能夠連續地執行下去,CPU必須具有某些手段來確定下一條指令的地址。而程式計數器正是起到這種作用,所以通常又稱為指令計數器。在程式開始執行前,必須將它的起始地址,即程式的一條指令所在的記憶體單元地址送入PC,因此程式計數器(PC)的內容即是從記憶體提取的第一條指令的地址。當執行指令時,CPU將自動修改PC的內容,即每執行一條指令PC增加一個量,這個量等於指令所含的位元組數,以便使其保持的總是將要執行的下一條指令的地址。由於大多數指令都是按順序來執行的,所以修改的過程通常只是簡單的對PC加1。PC的維數一般和存儲器地址暫存器MAR的維數一樣。
當程式轉移時,轉移指令執行的最終結果就是要改變PC的值,此PC值就是轉去的地址,以此實現轉移。有些機器中也稱PC為指令指針IP(Instruction Pointer)。