هر سیستم کامپیوتری بسته به معماری خود دارای دستههای مختلفی از ثباتها میباشد در سیستمهای مبتنی بر 8086 این ثباتها عبارتنداز:
1.ثباتهای عمومی 2.ثبات سگمنت 3.ثبات اندیس 4.ثبات وضعیت و کنترل
ثباتهای عمومی:
AX :
BX :
CX :
DX :
ثباتهای سگمنت:
برای کاربرد حافظه در سیستمها تقسیمبندی خاصی بنام سگمنت صورت میگیرد که قطعههایی از حافظه(RAM) را برای اجرای مثلا نگهداری کدها یا نگهداری متغییرهای تعریف شده و... رزرو میکنیم. آدرس شروع این قطعهها اولا بر 16 تقسیم پذیر است. ثانیا نقاط شروع این قطعه کدها باید در ثباتهای سگمنت قرارگیرند تا در مواقع آدرسدهی به سرعت در دسترس باشند.
تعریف آدرس افست: آدرس یک متغییر نسبت به آدرس شروع سگمنت داده را، آدرس افست میگوییم.
مثلا برای بدست آوردن آدرس یک داده تعریف شده در سگمنت داده باید محتوای ذخیره شده در سگمنت داده را با آدرس افست داده جمع کنیم تا آدرس واقعی متغییر در حافظه بدست آید.
ثباتهای اندیس:
- BP : حاوی افست مربوط به پشته است و اگر پارامتری از طریق پشته فراخوانی شود از طریق آن فراخوانی میشود.
- SP : افست بالای پشته را نشان میدهد.
- SI 4. DI : در عملیات با رشتهها SI رشته مبدا، و DI رشته مقصد را نشان میدهد.
در ابتدای برنامه پس از تعریف سگمنتها باید آنها را به ثبات آن سگمنت مرتبط کنیم. برای این منظور از راهنمای ASSUME به صورت زیر زیر استفاده میشود:
Assume cs : سگمنت کد , ds : سگمنت داده , es :سگمنت اضافی , ss : سگمنت پشته
وقتی دستور ASSUME سگمنتهارا با ثباتهای سگمنت مربوط کرد، اسمبلر میتواند آدرسهای آفست عناصر موجود در سگمنت کد، سگمنت دادهها و سگمنت پشته راتعیین میکند. به عنوان مثال، وقتی stacksg به ثبات ss نسبت داده میشود، پردازنده از آدرس موجود در ss برای تعیین آدرس پشته استفاده میکند.
برای دانلود راهنمای کامل ثبات ها در سیستم های کامپیوتری کلیک کنید