شمارنده برنامه

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

(به فارسی: {{{1}}}) پروگرام کانتر(PC) یا رایجا نامگذاری شده به نام‌های اشاره‌گر دستورالعمل(IP) در ریزپردازنده‌های Intel X86 و Intel Itanium و گاها نامگذاری شده به نام‌های رجیستر آدرس دستورالعمل(IAR)، شمارنده‌ی دستورالعمل(IC) یا فقط به عنوان بخشی از ترتیب‌سنج دستورالعمل، یک رجیستر پردازنده است که مکان یک کامپیوتر در ترتیب برنامه‌اش را مشخص می‌کند.

در بیشتر پردازنده‌ها، PC بعد از واکشی یک دستورالعمل افزایش می‌یابد و آدرس حافظهای که به دستورالعمل بعدی که می‌خواهد اجرا شود اشاره می‌کند را نگه می‌دارد.(در یک پردازنده، جایی که افزایش تک‌واحدی بر عمل واکشی مقدم می‌شود، PC به دستورالعمل فعلی در حال اجرا اشاره می‌کند.)

دستورالعمل‌ها معمولا بطور ترتیبی از حافظه واکشی می‌شوند، ولی دستورالعمل‌های کنترل انتقال، ترتیب را به وسیله‌ی مقداردهی جدید PC تغییر می‌دهند. این تغییرات شامل پرش‌ها(Branch یا Jump)، فراخوانی‌های زیرروالی(Subroutine Call) و بازگشت‌ها(Return) می‌شود. یک انتقال که مشروط به حقایق برخی اعلان‌هاست؛ به کامپیوتر این اجازه را می‌دهد که در شرایط مختلف، از ترتیب‌های متفاوتی پیروی کند.

یک پرش اجازه می‌دهد که دستورالعمل بعدی که واکشی شده، از یک مکان دیگر در حافظه باشد. یک فراخوانی زیرروالی، نه تنها پرش می‌کند، بلکه محتویات PC که بر آنها مقدم شده را جایی ذخیره می‌کند. یک بازگشت، محتویات قبلی و ذخیره شده PC را پس گرفته و دوباره درون PC قرار می‌دهد و اجرای ترتیبی را توسط دستورالعمل پیروی فراخوانی زیرروالی، ادامه می‌دهد.