مسجل الأعلام
ســِـجــِـل ّ الأعلام (بالإنكليزية: flags register) - أيضا ً مسمـّـى " ســِـجــِـل ّ كود الشروط " (condition code register) - هو عبارة عن بتــّـات مستقلــّـة بعضها عن بعض منطقيـّـا ً وهي تسمـّـى " أعلام " في معظم الأحيان. الأعلام تـُـستنبـَـط من المــِــعــْـمـَـلات (operands) ونتيجة عملية ٍ (result of an operation) ؛ وهي تبرز حالة وحدة الحسابيات والمنطق (arithmetic logic unit) بعد تنفيذ عملية ٍ. هي لا تـُـغيــّــَـر عن طريق تنفيذ عمليات حسابياتية أو منطقية من خلال وحدة الحسابيات والمنطق فقط، بل تتأثــّـر أيضا ً من أجل أوامر أخرى التي لا تـُظــْـهــِــر فرديا ً الارتباط المنطقي بين العملية والأعلام بشكل ٍ مباشر.
مقدمة
يتألف ســِـجــِـل ّ الاعلام من 32 بت ويقسم إلى ثلاثة أقسام رئيسية :
1- أعلام الحالة STATUS FLAGS
2- علم التحكم DIRECTION FLAG
3- مجموعة من أعلام النظام GROUP OF SYSTEM FLAGS
البتات من 1,3,5,15&22to31 محجوزة يجب أن لا تعتمد البرامج على أي من حالة هذه الخانات.
بعض الاعلام في ســِـجــِـل ّ الاعلام يمكن أن تعرف بشكل مباشر باستخدام بعض التعليمات الخاصة كما أنه لا يوجد تعليمات تفحص كامل ســِـجــِـل ّ الاعلام بشكل مباشر.
التعليمات التالية يمكن أن تستخدم لنقل مجموعة من الاعلام من وإلى روتينات البرنامج وذلك عن طريق الروتين المخصص للتعامل مع المكدس أو مع المكدس EAX:
LAHF,SAHF,PUSHF,PUSHD,POPF,and POPFD.
بعد ترحيل محتوى ســِـجــِـل ّ الاعلام إلى المكدس يمكن التعامل معه وفحصه باستخدام تعليمات بتتات التحكم
BT,BTS,BTR,BTC
عندما يتم ايقاف المهمة باستخدام خاصية المهام المتعددة للمعالج يقوم المعالج بشكل تلقائي بحفظ حالة ســِـجــِـل ّ الاعلام في قسم حالة المهمة Task state segment من أجل بدء وضع التوقف لهذه المهمة.
عند العودة إلى استئناف هذه المهمة يقوم المعالج باعادة تحميل ســِـجــِـل ّ الاعلام بالمعلومات اللازمة من الTSS
عند طلب المقاطعة أ روتين المسك الاستثنائي Exception Handler يقوم المعالج بشكل تلقائي بحفظ الحالة في روتين خدمة المكدس وعندما يتم تبديل المقاطعة أو الروتين الاستثنائي عن طريق تبديل المهام ومن ثم تم حفظها في TSS.
أعلام الحالة STATUS FLAGS
بتات أعلام الحالة هي (0,2,4,6,7,11) من ســِـجــِـل ّ الاعلام وهي تتأثر بالتعليمات الحسابية مثل الجمع add والطرح sub والضرب mult والقسمة div وهذه الاعلام :
أوّلا ً : علم الحمل CARRY FLAG
و هي في حالة واحد منطقي cf =1 إذا كانت ناتج العملية الحسابية هناك حمل أو اقتراض من الخاة الأكثر أهمية
و الا فهي صفر منطقي.
و هو يطابق شرط حمل الطفحان في العمليات الحسابية على الاعداد الصحيحة غير المؤشرة ويستخدم في حسابيات الدقـّـة المضاعفة Multiple Precision arithmetic
ثانيا ً : علم الازدواجية PARITY FLAG
واحد منطقي إذا كان عدد الواحدات في الايت السفلي من الناتج عددا زوجيا والا فصفر منطقي
ثالثا ً : علم الضبط ADJUST FLAG
يكون في حالة واحد منطقي إذا كان هنالك حمل أو اقتراض من الخانة الثالثة إلى الخانة الرابعة من النبل السفلي للناتج وصف فيما عدا ذلك ويستخدم مع التعليمات الحساية المطبقة على ال BCD.
رابعا ً : علم التصفير ZERO FLAG
يكون في حالة واحد منطقيZF=1 إذا كان الناتج صفرا وصفر فيما عدا ذلك ZF=0.
خامسا ً : علم الإشارة SIGN FLAG
مطابق للخانة الأكثر أهمية للناتج وهي خانة الإشارة للأعداد الصحيحة المؤشرة
إذا كانت SF=0 فالعدد موجب أما إذا كانت SF=1 فالعدد سالب.
سادسا ً : علم الطفحان OVERFLOW FLAG
يكون في حالة واحد منطقيOF=1 إذا كان العدد الصحيح الناتج موجب كبير جدا أو عدد سالب ضغير جدا بحيث لا تتسع خانات المستقر باستثناء خانة الإشارة أي أن الطفحان يحدث من الخانة ما فيل الأخيرة إلى الخانة الأخيرة الأكثر وهي خانة الإشارة ويكون صفر عندما لا يكون هنالك طفحان من الخانة ا قبل الأخيرة إلى الخانة الأخيرة ،إذا فهو متعلق بشرط الطفحان في الاعداد الصحيحة المؤشرة.
تعليقات
في أعلام الحالة هذه فقط علم الحمل يمككن أن يعرف بشكل مباشر أي يتم الولج إليه مباشرة باستخدام التعليمات STC,CLC,CMC كذلك باستخدام تعليمات الخاصة بالبت BT,BTS,BTR,BTC حيث تقوم نسخ بت معين إلى الCF.
تتأثر اعلام الحالة بالعمليات الحسابية على الاعداد الصحيحة المؤشرة والغير مؤشرة و BCD الصحيحة.
- إذا كان الناتج عدد صحيح غير مؤشر فإن CF يطابق حالة عدم اتساع الناتج OUT OF RANG وكذلك بالنسبة للاقتراض.
- إذا كان الناتج لعملية على أعداد مؤشرة فإننا نتمم الناتج ثنائياً وعلم الطفحان يطابق علم الحمل OF=CF.
- إذا كان التعامل مع الـBCD يكون الAF=CF
- في الأعداد المشرة الـSF يطابق إشارة العدد اؤسر أي الخانة الأخيرة و ZF يشير إما ألى الصفر الموجب أو الصفر السالب.
- يتم استخدام الحمل CF لكي يتم نقل تأثير عملية سابقة على عملية لاحقة مث العمليات ADC، SUB الحمع مع الحمل الطرح مع الاقتراض.
- التعليمات JP CC,SET CC,LOOP CC,MOV CC تقوم هذه التعليمات بفحص شرط معين من أجل القفز أو التفرع أو ضبط بايت معين أو إنهاء حلقة، يمكن لهذه التعليمات أن تستخدم أعلام الحالة السابقة.
علم التحكم DIRECTION FLAG
موقعه الت العاشر من ســِـجــِـل ّ الأعلام ويستخدم للتحكم بتعليمات السلاسل
MOVS ،CMPS SCAS ،LOADS ،STORS.
إذا وضع هذا اللم في حالة واحد منطقي DF=1 يجعل تعليمات السلاسل تقوم بانقاص آلي للعنوان في الذاكرة أي تعالج السلسة من الأعلى إلى الأسفل أما إذا كان الـDF=1 فإن تعليمات السلاسل تعالج المعلومات من العنوان الأسفل إلى الأعلى شكل آلي.
STD تقوم بحعل الـDF=1 CLD تقوم بجعل الـDF=0
أعلام النظام SYSTEM FLAGS
تتحكم اعلام النظام بعمليات نظام التشغيل وإدارة المهام ولا يمكن استخدامها مع برامج التطبيقات العادية وهي على الشكل التالي :
أوّلا ً : علم الخطوة الواحدية TF
عندما يكون في حالة واحد
منطقي أي TF =1 يسمح بتنفيذ خطوة واحدة فقط عند إجراء عملية DEBUGGING أي عملية تلقيط الاخطاء عندما يكون في حالة صفر منطقي TF=0 لا يسمح باجراء خطوة واحدية.
ثانيا ً : علم المقاطعات IF
يشغل البت التاسع من ســِـجــِـل ّ الاعلام
مسؤول عن التحكم بالمقاطعات
إذا كان علم المقاطعة IF=1 يقوم المعالج بالاستجابة لطلب المقاطعة ويقوم بتنفيذها
اما إذا كان علم المقاطعة IF =0 يقوم تجاهل المقاطعات
ثالثا ً : علم التحكم بالرط بين المقاطعات NESTED TASK FLAG
موقعه البت الرابع عشر في ســِـجــِـل ّ الاعلام وتتحكم بترتيب المقاطعات واستدعاء المهام
NT=1 عندما تكون المهمة الحالية ترتبط بالمهمة المنفذة السابقة.
NT=0 عندما تكون المهمة الحالية لا ترتبط بالمهمة السابقة.
رابعا ً : علم التحكم [بالاستثناءات] RF
موقع البت السادس عشر في ســِـجــِـل ّ الأعلام ويستخدم للتحكم باستجابة المعالج للاستثناءات
خامسا ً : علم الوضع النمط الحقيقي للمعالج 8085VM
موقعه البت السابع عشر في ســِـجــِـل ّ الاعلام
VM=1 لتمكين النمط الحقيقي للمعالج 8086
VM=0 من أجل العودة إلى الوضع المحمي والغاء الوضع الحقيقي 8086.
سادسا ً : علم الانزياح ALIGNMENT CHECK
موقعه البت الثامن عشر من ســِـجــِـل ّ الاعلام
إذا كان الAC=1 وكان العلم AM=1 الواقع في الـسـّـِـجــِـل ّ CR0 يتم تمكين وضع الانزياح في فحص مؤشرات الذاكرة.
عندما يكون AC=0 أو AM=0 يتم إلغاء وضع فحص الانزياح في الذاكرة.
سابعا ً : علم تمكين المقاطعة الفعليVIRTUAL INTERRUPT FLAG
موقعه البت التاسع عشر من ســِـجــِـل ّ الاعلام وهو الصورة الحقحقية للعلم IF ولتكين ويستخدم بالاقتران مع العلم VIP
ثامنا ً : علم تعليق المقاطعات الفعليVIRTUAL INTERRUPT PENDING FLAG
موقعه البت العشرون من ســِـجــِـل ّ الاعلام
إذا كان VIP=1 عندما يكون هنالك كقاطعات تم تعليقعا
أما إذا كان VIP=0 فإنه لا توجد مقاطعات معلقة.علما أن البرامج هي التي تقوم بالكتابة على هذا العلم أما المعالج فيقوم بالقراءة فقط يستخدم هذا العلم مع العلم VIF.
تاسعا ً : علم التعريف أو الولوج IDENTIFICATION FLAG
موقعه البت الواحد والعشرون من ســِـجــِـل ّ الأعلام ويمكن للبرامج أن تستخدم هذا العلم من أجل دعم تعليمة التعرف على المعالج CPUID INSTRUCTION
المراجع
- كتاب المعالج المصغر للدكتور يحيى نجار
- Intel® 64 and IA-32 Architectures Software Developer’s Manual
وصلات خارجية
FLAGS register (computing)]] es:Registro de estado fr:RFLAGS nl:Conditiecode pl:FLAGS ru:Регистр флагов uk:Регістр EFLAGS