Juga dikenal sebagai register alamat instruksi, PC, atau penunjuk instruksi, penghitung program adalah jenis register yang ditemukan di unit pemrosesan pusat ( CPU ) dari sistem komputer. Tujuan dari penghitung adalah untuk menyediakan perumahan sementara untuk instruksi berikutnya yang akan dieksekusi dalam serangkaian instruksi. Saat satu instruksi diambil dan diimplementasikan, penghitung program mengantri instruksi berikutnya dalam string, secara efektif meminimalkan penundaan dalam pelaksanaan langkah-langkah yang diperlukan untuk menyelesaikan tugas. Dengan selalu menunjuk pada instruksi berikutnya, proses terus bergerak maju secara efisien.

Unit pemrosesan pusat. Penghitung program adalah salah satu dari beberapa register berbeda yang dibangun ke dalam CPU.

Meskipun ada variasi, pengoperasian penghitung program di dalam unit pemrosesan pusat relatif mudah. Ketika tugas baru dipesan, instruksi yang diperlukan untuk mengelola tugas itu diambil dari memori. Hal ini biasanya dilakukan oleh CPU yang membuat alamat yang kemudian dikirim ke memori, yang merespon dengan mengirimkan instruksi kembali ke unit sebagai data melalui bus data.

Penghitung program, sebagai salah satu dari beberapa register berbeda yang dibangun ke dalam CPU, melakukan tugas menerima setiap instruksi dalam urutan tugas. Mempertahankan urutan logis menyederhanakan kemajuan ke depan untuk setiap langkah, akhirnya menyelesaikan tugas. Perkembangan logis ini dipertahankan dengan menunjuk ke data yang akan digunakan berikutnya bahkan ketika data sebelumnya sedang digunakan, kemudian dengan cepat menunjuk ke data berikutnya dalam urutan saat setiap instruksi dieksekusi secara bergantian.

Bergantung pada konfigurasi pencacah program, register sebenarnya dapat berfungsi sebagai penunjuk untuk lebih dari satu instruksi yang terlibat dengan proses tertentu yang sedang dieksekusi. Dengan beberapa desain register, penghitung program tidak hanya menunjuk ke arah proses berikutnya dalam urutan, tetapi juga ke arah instruksi yang baru saja dirilis yang sekarang dalam proses diimplementasikan. Desain khusus ini dianggap membantu menjaga keseimbangan sumber daya serta membantu melindungi pergerakan maju instruksi dengan tingkat efisiensi yang lebih tinggi.

Fungsi penghitung program sangat penting untuk keberhasilan pelaksanaan instruksi yang terlibat dalam tugas apa pun. Dengan menunjukkan jalan menuju setiap instruksi dalam urutan, penghitung membantu memberikan eksekusi logis dari langkah-langkah tersebut yang pada akhirnya mengarah pada penyelesaian tugas dengan cepat dan efisien. Tanpa penggunaan register jenis ini, potensi urutan terganggu akan ditingkatkan, dan peluang untuk menyelesaikan tugas akan relatif sedikit. Dengan menambahkan organisasi ke langkah demi langkah penyelesaian semua instruksi, penghitung program berfungsi sebagai saluran yang meminimalkan anomali dan menjaga proses tetap berjalan dengan benar.