ما هو تسجيل الحالة؟

يُعرّف سجل الحالة – المعروف أيضًا باسم سجل العلم ، وكلمة حالة البرنامج ، وسجل رمز الشرط – على أنه مجموعة من بتات العلم داخل المعالج. السجل عبارة عن دائرة معالج ويشبه إلى حد كبير موقع الذاكرة ، مما يعني أنه يمكن كتابة البيانات وقراءتها منه. على عكس موقع الذاكرة ، لا يحتوي سجل الحالة غالبًا على عنوان لأن المعالج الدقيق يستخدمه داخليًا. في وحدة المعالجة المركزية (CPU) ذات 8 بت ، يمكن تعيين بت تسجيل الحالة ، مساويًا للرقم 1 ، أو مسحه ، مساويًا للرقم 0 ، من خلال نتائج تشغيل المعالج المتنوعة. يقوم المعالج أحيانًا بتعيين أو مسح البتات نفسها ، ولكن في أحيان أخرى ، يقوم تعليمات برنامج معينة بتعيين أو مسح البتات.

تسمى بتات تسجيل الحالة أيضًا علامات ، أو بتات العلم ، ويستخدمها المبرمج لأغراض برمجة معينة. كل علم في سجل الحالة له غرض فريد. يتم تعيين علامة الحمل إذا أدت عملية سابقة إلى تجاوز البتة السابعة – أو العلم السالب – أو جعل علم الحمل تحت التدفق. يتم تعيينه خلال تحولات المنطق والمقارنة والحساب. يتم تعيين علامة الصفر إذا كانت أحدث نتيجة عملية هي 0.

تعمل علامة تسمى “تعطيل المقاطعة” عن طريق السماح أو عدم السماح بتشغيل المقاطعات ، وهي تعليمات توقف مؤقتًا بعض العمليات بحيث يمكن تنفيذ عمليات أخرى. عندما يتم تعيين هذه العلامة المحددة ، لا يُسمح للمقاطعات بالعمل ، ولكن عندما يكون واضحًا ، يُسمح بالمقاطعات. علم آخر يسمى العلامة العشرية يسمح للمعالج باتباع وضع ثنائي أكثر تقدمًا لأداء معادلات حسابية خالية من العيوب. عندما يتم تعيين العلم ، فإنه يستخدم هذا الوضع الثنائي المتقدم. بت سجل آخر هو بت فاصل العلم ، والذي يحدد عند تنفيذ أمر مقاطعة القوة (BRK).

يتم تعيين علامة تجاوز السعة أثناء العمليات الحسابية إذا أسفرت العملية عن نتيجة غير صالحة. يتم تعيين العلامة السلبية إذا كانت نتيجة أحدث عملية قد تم تعيينها على 1. يكون العلم الأخير ، الذي يسمى بت 5 ، مجهول الاسم ويتم تعيينه دائمًا على 1. لا يستخدم المبرمجون بشكل أساسي هذه البتة المعينة.

يعد سجل FLAGS أحد الأمثلة على سجل الحالة الذي تم استخدامه في بعض وحدات المعالجات المركزية واحتوى على الحالات الحالية للمعالج. كان عرضه 16 بت وخلفه EFLAGS و RFLAGS ، وهو سجل 32 بت وسجل 64 بت ، على التوالي. ومع ذلك ، فإن سجل FLAGS يحتوي على بعض الأعلام التي كانت مختلفة عن السجل الأصلي المكون من 8 بتات ، بما في ذلك علامة التكافؤ والعلم الإضافي وعلم الملاءمة.