ثبات های اشاره گر

ریزپردازنده ۸۰۸۶/۸۰۸۸ دارای پنج ثبات اشاره گر است که برای آدرس دهی حافظه استفاده می شود. دو ثبات اشاره گر به نام های BP و SP که برای آدرس دهی حافظه پشته به کار می رود. دو ثبات شاخص SI و DI و بالاخره ثبات IP که ثبات اشاره گر دستورالعملهاست. نکته مهم در مورد ثبات های اشاره گر آن است که این ثبات ها فقط به صورت ۱۶ بیتی قابل استفاده هستند و به صورت ۸ بیتی نمی توان از آنها استفاده کرد.از محتویات این ثباتها به عنوان آدرس موثر برای آدرس دهی حافظه استفاده می شود. البته در دستورالعمل ها می توان از محتویات آنها به عنوان عملوندهای محاسباتی یا منطقی هم استفاده کرد. هرچند استثناهایی نیز وجود دارد که در جای خود توضیح داده خواهد شد.

ثبات SP
به نام ثبات اشاره گر پشته نامیده می شود. این ثبات در ریزپردازنده های دیگر هم معمولا به این نام نامیده شده و به محل بالای حافظه پشته اشاره می کند. به عبارت دیگر همواره آدرس موثر آخرین محل از حافظه پشته که داده در آن قرار گرفته، در داخل ثبات SP قرار دارد. بعدا خواهیم دید که در ریزپردازنده ۸۰۸۶/۸۰۸۸ آدرس واقعی بالای حافظه پشته از ترکیب محتویات ثبات SP با ثبات قطعه SS به دست می آید.

ثبات BP

به نام ثبات اشاره گر پایه نامیده می شود. با استفاده از این ثبات می توان داده مورد نظر را در هر محلی از حافظه پشته قرار داد و یا از آن دستیابی کرد. همانند ثبات SP برای محاسبه آدرس فیزیکی از ثبات قطعه SS استفاده می شود.

ثبات های شاخص SI و DI
ریزپردازنده ۸۰۸۶/۸۰۸۸ دارای دو ثبات شاخص می باشد. نقش آنها همانند نقش سایر ثبات های شاخص در پردازنده هاست. محتویات این ثبات ها می توانند به منظور به دست آوردن آدرس موثر با محتویات سایر ثبات ها (که بدین منظور به کار برده می شود) جمع گردد. البته از این ثبات ها هم می توان در عملیات محاسباتی و منطقی به عنوان عملوند استفاده کرد. همانند سایر ثبات های اشاره گر این ثبات ها فقط به صورت ۱۶ بیتی قابل استفاده هستند.

ثبات شاخص SI که به نام ثبات شاخص مبدا نامیده می شود، کاربرد اختصاصی آن در دستورات رشته برای آدرس دهی مبدا است. ثبات شاخص DI نیز به نام ثبات شاخص مقصد نامیده شده و کاربرد اختصاصی آن در دستورات رشته و برای آدرس دهی مقصد است.

ثبات اشاره گر دستورالعمل ها (IP)
در پردازنده های دیگر ثباتی به نام PC وجود دارد که به عنوان شمارنده برنامه عمل می کند. در ریزپردازنده ۸۰۸۶/۸۰۸۸ این ثبات به نام ثبات اشاره گر دستورالعمل ها نامیده می شود. همانند سایر ثباتهای اشاره گر ۱۶ بیتی بوده و به عنوان آدرس موثر برای به دست آوردن آدرس های برنامه و دستورالعمل ها استفاده می گردد.

بلافاصله بعد از هر عمل واکشی از حافظه، محتویات IP به صورت خودکار تغییر می کند تا به دستور بعدی که باید به داخل ریزپردازنده واکشی شود ، اشاره کند. اگر دستورات بصورت متوالی اجرا گردد، بعد از هر واکشی مقدار آن به اندازه طول کد دستورالعمل افزایش خواهد یافت. (در فهرست مقالات سایت میکرو رایانه جستجو کنید) مثلا برای دستورات دو بایتی ، ۲ واحد و برای دستورات سه بایتی ۳ واحد و … افزایش خواهد یافت. در صورت استفاده از دستورات پرشی و انشعاب و نظایر آن نیز مقدار IP تصحیح خواهد شد.

این ثبات نیز همانند سایر ثباتهای آدرس فقط به صورت ۱۶ بیتی قابل استفاده بوده و همواره برای به دست آوردن آدرس های فیزیکی برنامه از ترکیب محتویات آن به عنوان آدرس موثر با ثبات قطعه CS استفاده می شود.

تذکر این نکته ضروری است که در پردازنده های معمولی به دلیل عدم وجود صف دستورالعمل ها، هر دستورالعملی که از حافظه واکشی شود بلافاصله نیز اجرا می گردد ولی در پردازنده ۸۰۸۶/۸۰۸۸ به دلیل وجود صف دستورالعملها، دستورالعمل واکشی شده ابتدا در این صف قرار می گیرد. بنابراین شمارنده برنامه یا PC در سایر ریزپردازنده ها یک تفاوت جزئی با اشاره گر دستورالعملها (IP) در ۸۰۸۶/۸۰۸۸ خواهد داشت: PC همواره به دستور بعدی اشاره می کند که به وسیله ریزپردازنده(های معمولی) اجرا خواهد شد ولی IP در ۸۰۸۶/۸۰۸۸ به دستورالعمل بعدی اشاره می کند که به وسیله واحد BIU از حافظه واکشی خواهد شد و به همین جهت به جای لفظ شمارنده برنامه از آن با نام اشاره گر دستورالعمل ها یاد می شود.