سِجِلّ الأعلام (بالإنجليزية: flags register)‏[1][2] [3] -يسمى أيضًا «يجل كود الشروط» (condition code register)- هو عبارة عن بتّات مستقلّة بعضها عن بعض منطقيًا وهي تسمّى «أعلام» في معظم الأحيان. الأعلام تستنبط من المِعْمَلات (operands) ونتيجة عملية (result of an operation)؛ وهي تبرز حالة وحدة الحسابيات والمنطق (arithmetic logic unit) بعد تنفيذ عملية هي لا تُغيَّر عن طريق تنفيذ عمليات حسابياتية أو منطقية من خلال وحدة الحسابيات والمنطق فقط، بل تتأثّر أيضًا من أجل أوامر أخرى التي لا تُظهر فرديًا الارتباط المنطقي بين العملية والأعلام بشكل مباشر.[4]

مقدمة

عدل

يتألف سجل الاعلام من 32 بت ويقسم إلى ثلاثة أقسام رئيسية:

1- أعلام الحالة STATUS FLAGS

2- علم التحكم DIRECTION FLAG

3- مجموعة من أعلام النظام GROUP OF SYSTEM FLAGS

البتات من 1,3,5,15&22to31 محجوزة يجب أن لا تعتمد البرامج على أي من حالة هذه الخانات.[5][6]

بعض اللعلام في سجل الاعلام يمكن أن تعرف بشكل مباشر باستخدام بعض التعليمات الخاصة كما أنه لا يوجد تعليمات تفحص كامل سجل الاعلام بشكل مباشر.

التعليمات التالية يمكن أن تستخدم لنقل مجموعة من الاعلام من وإلى روتينات البرنامج وذلك عن طريق الروتين المخصص للتعامل مع المكدس أو مع المكدس 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

عدل

واحد منطقي إذا كان عدد الواحدات في البايت السفلي من الناتج عددا زوجيا والا فصفر منطقي

علم الضبط AUXILIARY 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

المراجع

عدل
  1. ^ Intel 64 and IA-32 Architectures Software Developer’s Manual (PDF). ج. 1. ديسمبر 2016. ص. 78. مؤرشف من الأصل (PDF) في 2024-07-07.
  2. ^ Intel 64 and IA-32 Architectures Software Developer’s Manual, Vol. 1. ديسمبر 2022. ص. 3–16. مؤرشف من الأصل في 2023-10-30.
  3. ^ "Silicon reverse engineering: The 8085's undocumented flags". مؤرشف من الأصل في 2023-12-06. اطلع عليه بتاريخ 2024-08-15.
  4. ^ المعجم الموحد لمصطلحات تقانة (تكنولوجيا) المعلومات: (إنجليزي-فرنسي-عربي). سلسلة المعاجم الموحدة (36) (بالعربية والإنجليزية والفرنسية). الرباط: مكتب تنسيق التعريب. 2011. ص. 23. ISBN:978-9954-0-0742-6. OCLC:1413893208. QID:Q111267300.
  5. ^ معجم المصطلحات المعلوماتية (بالعربية والإنجليزية)، دمشق: الجمعية العلمية السورية للمعلوماتية، 2000، ص. 49-50، OCLC:47938198، QID:Q108408025
  6. ^ منير البعلبكي؛ رمزي البعلبكي (2008). المورد الحديث: قاموس إنكليزي عربي (بالعربية والإنجليزية) (ط. 1). بيروت: دار العلم للملايين. ص. 135. ISBN:978-9953-63-541-5. OCLC:405515532. OL:50197876M. QID:Q112315598.
  • كتاب المعالج المصغر للدكتور يحيى نجار
  • Intel® 64 and IA-32 Architectures Software Developer’s Manual

وصلات خارجية

عدل