شمارنده برنامه ( به انگلیسی: program counter = PC ) ، که معمولاً در اینتل اکس۸۶ و ریزپردازنده ی ایتانیوم نشانگر دستور ( به انگلیسی: instruction pointer = IP ) و گاهی نیز دستور آدرس ثبات ( به انگلیسی: instruction address register = IAR ) نامیده می شود، شمارنده دستور یا بخشی از دستور سنجش توالی در ثبات است که نشان می دهد رایانه در چه قسمتی از توالی برنامه قرار دارد ) در اکثر فرایندها، PC پس از دریافت مجموعه دستورالعمل توسعه میابد و آدرس حافظه ی ( نقاط مختلف ) دستور بعدی را که باید اجرا شود در خود نگه می دارد. ( در فرایندهای فراخوانی با اولویت، PC به دستوری که دقیقاً در حال اجرا است اشاره می کند )
دستورها اغلب به صورت ترتیبی از حافظه بیرون کشیده می شوند، اما کنترل کنندهٔ انتقال دستورها با قرار دادن مقدار جدیدی برای PC این ترتیب را تغییر می دهد. که این شامل انشعابات ( برخی اوقات پرش نامیده می شود ) ، فراخوان رویه و بازگشت ها است. انتقالی که مشروط به درست بودن یک ادعا است به رایانه این اجازه را می دهد که تحت شرایط مختلف از ترتیب های متفاوتی پیروی کند.
یک انشعاب دستوری را آماده می کند که توسط بخشی دیگر از حافظه فراخوانی شده است. یک فراخوان رویه نه تنها انشعابات را ایجاد می کند بلکه محتویات سابق PC را نیز در جایی ذخیره می کند. یک بازگشت محتویات ذخیره شدهٔ PC را بازمی گرداند و دوباره در محل PC قرار می دهد، حاصل این عمل اجرای ترتیبی با دنبال کنندهٔ فراخوان رویه است.
در یک پردازنده معمولی، PC یک شمارنده باینری است ( منبع شمارنده برنامه ) که ممکن است یکی از بسیار ثبات موجود در سخت افزار پردازنده باشد. شرخه دستورها با واکشی ( به انگلیسی: fetch ) آغاز می شود، که در آن پردازنده مقدار PC را در گذرگاه آدرس برای ارسال به حافظه قرار می دهد. حافظه با قرار دادن محتویات موقعیت اعلام شده بر روی گذرگاه به این عمل پاسخ می دهد. در ادامهٔ واکشی، فرایندهای پردازنده اجرا می شوند که شامل چندین فعالیت برحسب گرفتن اطلاعات از حافظه هستند. از طرفی در این چرخه، PC اصلاح می شود در نتیجه دستور بعدی که اجرا می شود با قبلی متفاوت است. ( به طور معمول، با فواصل کوچکی تغییر میابد در نتیجه دستور بعدی که شروع می شود در آدرس حافظه ای است که بلافاصله بعد از مکان دستور کنونی در حافظه قرار دارد )
مانند دیگر ثبات های فرایند، PC نیز ممکن است بانکی از قفل های باینری باشد، که هر کدام مسئول یک بیت از ارزش PC هستند. تعداد بیت ها ( طول PC ) به معماری فرایند وابسته است. برای مثال، یک پردازندهٔ ۳۲بیتی ممکن است برای آدرس دهی به ۲³² واحد از حافظه از کل ۳۲بیت خود استفاده کند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفدستورها اغلب به صورت ترتیبی از حافظه بیرون کشیده می شوند، اما کنترل کنندهٔ انتقال دستورها با قرار دادن مقدار جدیدی برای PC این ترتیب را تغییر می دهد. که این شامل انشعابات ( برخی اوقات پرش نامیده می شود ) ، فراخوان رویه و بازگشت ها است. انتقالی که مشروط به درست بودن یک ادعا است به رایانه این اجازه را می دهد که تحت شرایط مختلف از ترتیب های متفاوتی پیروی کند.
یک انشعاب دستوری را آماده می کند که توسط بخشی دیگر از حافظه فراخوانی شده است. یک فراخوان رویه نه تنها انشعابات را ایجاد می کند بلکه محتویات سابق PC را نیز در جایی ذخیره می کند. یک بازگشت محتویات ذخیره شدهٔ PC را بازمی گرداند و دوباره در محل PC قرار می دهد، حاصل این عمل اجرای ترتیبی با دنبال کنندهٔ فراخوان رویه است.
در یک پردازنده معمولی، PC یک شمارنده باینری است ( منبع شمارنده برنامه ) که ممکن است یکی از بسیار ثبات موجود در سخت افزار پردازنده باشد. شرخه دستورها با واکشی ( به انگلیسی: fetch ) آغاز می شود، که در آن پردازنده مقدار PC را در گذرگاه آدرس برای ارسال به حافظه قرار می دهد. حافظه با قرار دادن محتویات موقعیت اعلام شده بر روی گذرگاه به این عمل پاسخ می دهد. در ادامهٔ واکشی، فرایندهای پردازنده اجرا می شوند که شامل چندین فعالیت برحسب گرفتن اطلاعات از حافظه هستند. از طرفی در این چرخه، PC اصلاح می شود در نتیجه دستور بعدی که اجرا می شود با قبلی متفاوت است. ( به طور معمول، با فواصل کوچکی تغییر میابد در نتیجه دستور بعدی که شروع می شود در آدرس حافظه ای است که بلافاصله بعد از مکان دستور کنونی در حافظه قرار دارد )
مانند دیگر ثبات های فرایند، PC نیز ممکن است بانکی از قفل های باینری باشد، که هر کدام مسئول یک بیت از ارزش PC هستند. تعداد بیت ها ( طول PC ) به معماری فرایند وابسته است. برای مثال، یک پردازندهٔ ۳۲بیتی ممکن است برای آدرس دهی به ۲³² واحد از حافظه از کل ۳۲بیت خود استفاده کند.
wiki: شمارنده برنامه