سجل العلم في المعالج الدقيق Flag register in 8085 microprocessor

اقرأ في هذا المقال


في المعالج الدقيق (8085)، يمكن أن يحتوي سجل الأعلام على ثمانية أعلام، وبالتالي يمكن تمثيل العلم بمقدار (1) بت من المعلومات، لكن تمّ تنفيذ خمسة أعلام فقط في المعالج (8085)، وهي: علم الحمل (Cy)، علم الحمل إضافي (AC)، علم الإشارة (S)، علم التكافؤ (P)، علم الصفر (Z).

ما هو سجل العلم في المعالج الدقيق 8085

سجل العلم (Flag register) هو سجل للأغراض الخاصة (Special Purpose Register)، اعتمادًا على قيمة النتيجة بعد أي عملية حسابية ومنطقية، يتم تعيين بتات العلم (1) أو إعادة تعيينها (0)، في المعالج الدقيق (8085)، يتكون سجل العلم من (8) بتات و(5) منها فقط مفيدة.

ما هي أنواع الأعلام Flags

هناك خمسة أعلام، وهي:

علم الإشارة Sign Flag (S)

بعد أي عملية إذا كان MSB (B (7))) للنتيجة هو (1)، فإنّه يشير إلى الرقم سالب ويتم تعيين علم الإشارة، أي (1)، إذا كان (MSB) هو (0)، فهذا يشير إلى أنّ الرقم موجب وعلم الإشارة يصبح إعادة تعيين أي (0):

from 00H to 7F, sign flag is 0

from 80H to FF, sign flag is 1

1- MSB is 1 (negative)

0- MSB is 0 (positive)

مثال

MVI A 30 (load 30H in register A)

MVI B 40 (load 40H in register B)

SUB B (A = A – B)

ستعمل مجموعة التعليمات هذه على تعيين علم الإشارة على (1) لأنّ (40 – 30) رقمًا سالبًا.

MVI A 40 (load 40H in register A)

MVI B 30 (load 30H in register B)

SUB B (A = A – B)

ستعمل مجموعة التعليمات هذه على إعادة تعيين علم الإشارة إلى (0) لأنّ (30 – 40) رقم موجب.

العلم الصفري Zero Flag (Z)

بعد أي عملية حسابية أو منطقية إذا كانت النتيجة (0)، أي ((00) H)، يتم تعيين علم الصفر على سبيل المثال (set) (1)، وإلا يتم إعادة تعيينه أي (reset) (0).

00H zero flag is 1

from 01H to FFH zero flag is 0

1- zero result

0- non-zero result

مثال

MVI A 10 (load 10H in register A)

SUB A (A = A – A)

ستعمل مجموعة التعليمات هذه على ضبط علم الصفر على (1) حيث أنّ: (10H – 10H) تساوي (00H).

علم الحمل الإضافي Auxiliary Carry Flag (AC)

يُستخدم هذا العلم في نظام أرقام (BCD (0-9))، إذا قام (D (3)) بعد أي عملية حسابية أو منطقية بإنشاء أي حمل وتمريره إلى (B (4))، يتم تعيين هذه العلم على سبيل المثال (set) (1)، وإلا فسيتم إعادة تعيينه، (reset) (0)، هذا هو سجل العلم الوحيد الذي لا يمكن للمبرمج الوصول إليه.

1-carry out from bit 3 on addition or borrow into bit 3 on subtraction

0-otherwise

مثال

MOV A 2B (load 2BH in register A)

MOV B 39 (load 39H in register B)

ADD B (A = A + B)

ستعمل هذه المجموعة من التعليمات على تعيين علم الحمل الإضافي على (1)، كما هو الحال عند إضافة (2B و39)، فإنّ هذا النوع من الإضافة ذات الترتيب الأدنى (B و9) ستنشئ حملًا.

علم التكافؤ Parity Flag (P)

إذا كانت النتيجة بعد أي عملية حسابية أو منطقية لها تكافؤ زوجي، عدد زوجي من (1) بت، يصبح سجل التكافؤ مضبوطًا على سبيل المثال (set) (1)، وإلا فسيتم إعادة تعيينه أي (reset) (0).

1-accumulator has even number of 1 bits

0-accumulator has odd parity

مثال

MVI A 05 (load 05H in register A)

ستعمل هذه التعليمات على ضبط علم التكافؤ على (1) لأنّ: كود (BCD) لـ (05H) هو (00000101)، والذي يحتوي على عدد زوجي من الآحاد، أي (2).

علم الحمل Carry Flag (CY)

يتم إنشاء حمل (Carry) عند إجراء عمليات (n bit) والنتيجة أكثر من (n) بت، ثمّ يتم تعيين هذه العلامة على سبيل المثال (set) (1)، وإلا يتم إعادة تعيينها، أي (reset) (0).

أثناء الطرح (A-B)، إذا كانت (A>B)، تتم إعادة تعيينه (reset) وإذا تمّ ضبط (A<B) تتم إعادة تعيينه (set).

1-carry out from MSB bit on addition or borrow into MSB bit on subtraction

0-no carry out or borrow into MSB bit

مثال

MVI A 30 (load 30H in register A)

MVI B 40 (load 40H in register B)

SUB B (A = A – B)

ستعمل مجموعة التعليمات هذه على تعيين علم الحمل على (1) حيث أنّ: (40-30) تنشئ عملية ترحيل / استعارة (carry/borrow).

MVI A 40 (load 40H in register A)

MVI B 30 (load 30H in register B)

SUB B (A = A – B)

ستعمل مجموعة التعليمات هذه على إعادة تعيين علامة الإشارة إلى (0) لأنّ: (30 – 40) لا ينتج عنها أي ترحيل / استعارة (carry/borrow).


شارك المقالة: