المعالج المصغر عملي ( ) 1 سوف ندرس معالج 8086الذي يعتبر من أقدم المعالجات ،طول ممر الـ Dataله bit 16وطول ممر العنونة فيه ،bit 20وباعتبار ممر العنونة له bit 20فحجم الذاكرة 220أي يتعامل مع ذاكرة حجمها .1 MB المسجالت :هي مواقع تخزينية موجودة ضمن المعالج ( مدمجة معه ) وظيفتها تسريع عمل المعالج. الفرق بين المسجالت والذاكرة: الذاكرة موجودة خارج المعالج بينما المسجالت ضمنه. يتعامل المعالج مع المسجالت عن طريق اسمها. الوصول إلى المسجالت أسرع من الوصول إلى الذاكرة. يوجد لدينا أربع مجموعات في المعالج 8086وهي: -1مسجالت األغراض العامة :االستخدام األساسي لها هو تخزين ال Dataالتي نستخدمها أثناء البرامج ولها قسمين: القسم األول فيه: مسجالت المعطيات: 0 15 8 7 AL AH AX BL BH BX CL CH CX DL DH DX مالحظة هامة :طول المسجالت في معالج 8086جميعها bit 16من 0حتى 15 )1المراكم :AXوظيفته األساسية تخزين الـ Dataويعتبر طرف أساسي في العمليات الحسابية مثل الضرب والقسمة. )2مسجل القاعدة :BXوظيفته األساسية أيضًا تخزين الـ Dataوهو المسجل الوحيد في هذه المجموعة يستخدم في مجال العنونة. )3مسجل العداد :CXنستخدمه عندما نتعامل مع الحلقات أو أي عملية دوران حيث نضع عدد مرات تكرار الحلقة ضمن تعليمة معينة في الـ .CX )4مرافق المراكم :DXيعمل مثل الـ .AX القسم الثاني: مسجالت التأشير والفهرسة:عملها األساسي هو تخزين عناوين أو إزاحات. SI يتعامل مع سلسلة المصدر DI يتعامل مع سلسلة المأل SP مؤشر قيمة المكدس BP مسجل قاعدة من خالله نستطيع التنقل بين عناصر المكدس ىد مالحظة :عند استخدام BXفي مجال العنونة ال يمكن نسخه إلى BLو BHألن طول العنوان ، bit 16حص اًر -2مسجل مؤشر التعليمة: ىد 15 0 IP هو مسجل يحوي عنوان التعليمة التي تنفذ حالياً عندما تشغل البرنامج يمكن إعطاء قيمة ابتدائية لـ IPبعدها فقط المعالج هو الذي يتحكم فيها. -3مسجالت المقاطع: DS CS SS ES مالحظة :نعلم أن الذاكرة التي يتعامل معها المعالج حجمها MB 1وكل حجرة (موقع) فيها حجمها byte 1 لتنظيم عمل المعالج تم تقسيم الذاكرة إلى أربعة مقاطع كالتالي: DATA CODE STACK كل مقطع فيها حجمه 64 KB EXTRA عندما يكون المعالج يتعامل مع Dataيقوم بتخزينه في مقطع الـ Dataوعند التعامل مع شيفرة تعليمة يقوم بتخزينه في مقطع الـ Codeوعندما يتعامل مع مكدس يخزنه في مقطع الـ ،Stackأما مقطع الـ Extraفيستخدمه المعالج عندما نكون بحاجة لـ مقطع Dataجديد ونستطيع أن تفتح مقطع جديد كلما كانت الواحد ميغا ( الذاكرة ) متاحة ،وهنا يأتي عمل مسجالت المقاطع التي تتيح لنا الوصول إلى مقاطع الذاكرة. حتى نصل إلى مقطع معين نحتاج إلى بداية المقطع ،فعندما نحجز مقطع Dataنستخدم مسجل الـ DSوعندما نحجز مقطع Codeنستخدم مسجل الـ CSوعندما نحجز مقطع Stackنستخدم مسجل الـ SSوعندما نحتاج لمقطع Data إضافي نستخدم ( EX ( Extra ما الفرق بين مسجل المقطع والمقطع؟ مسجل المقطع يحوي عنوان بداية المقطع موجود ضمن المعالج حجمه .bit 16 المقطع هو حيز من الذاكرة تخزن فيه Dataأو Codeأو معطيات Stackحجمه .KB 64 عندما نخزن في الذاكرة بموقع ما فنحن بحاجة إلى عنوان بداية المقطع ومقدار اإلزاحة ( بعد الموقع عن بداية المقطع ) وهذا ما يعرف بـ العنوان الفيزيائي. مالحظة :مقدار اإلزاحة نجده في أحد مسجالت العنونة ( .) BX , SI , DI , SP , BP لتنظيم عمل المعالج أكثر تم توزيع المسجالت على المقاطع، فعندما تعنون مقطع Dataنستخدم الـ DIو SIو BXكإزاحة. وإذا كان مقطع Codeنستخدم .IP وإذا كان مقطع Stackنستخدم BPو SPكإزاحة. وأذا كان مقطع Extraفهو مقطع Dataإذا في فنستخدم DIو SIو BXكإزاحة. العنوان الفيزيائي = عنوان بداية المقطع × + 16مقدار اإل زاحة. ضربنا بـ 16من أجل التوسعة ألن العنوان الفيزيائي طوله ،bit 20ال نستطيع أن نقول يساوي ( bit 16الذي هو عنوان بداية المقطع أي مسجالت المقاطع ) وهذه التوسعة فقط تكون بشكل رياضي وليس بشكل فيزيائي وتقوم بهذا العمل وحدة . . BIU تمرين: احسب العنوان الفيزيائي لتعليمة علمًا أن IP = 3600He CS = 7000He DS = 2500He الحل العنوان الفيزيائي = 73600 He= 3600 + 70000 = 3600 + 16 * 7000 =IP + 16 * CS ( استخدمنا IPالن CSيتعامل معه) تمرين: لدينا العنوان الفيزيائي 57030 Heاحسب محتويات المسجل DSعلماً أن IP = 3750H BX = 30H الحل: العنوان الفيزيائي = BX + 16 * DS 𝐻57030 − 30 16 = 5700H = 𝑋𝐷 𝑋𝐵 −عنوان فيزيائي 16 مسجل األعالم: هو مسجل يعطينا نتيجة تأثير تنفيذ تعليمة معينة على المعالج عن طريق قراءة مسجل فقط. طوله bit 16حيث مستخدمة bit 9و bit 7غير مستخدمة تمتل بـ Don't care C P A Z S T I D O = 𝑋𝐷 مسجالت األعالم تقسم إلى ثالثة أعالم تحكم وستة أعالم حالة. الفرق بين أعالم التحكم وأعالم حالة ؟ أعالم التحكم نستطيع أن نعطيها قيمة 0أو 1أما أعالم الحالة فالمعالج هو الذي يعطينا قيمتها بعد تنفيذ تعليمة ما. أعالم التحكم علم االتجاه :DF 0عندما نتعامل مع سلسلة أو مصفوفة ونحن نمتلك بدايتها. 1عندما نتعامل مع سلسلة أو مصفوفة ونحن نمتلك نهايتها. علم المقاطعة :IF 0عدم االستجابة للمقاطعة الخارجية. 1لتمكين المقاطعة الخارجية ( يقصد بها أن يستجيب المعالج ألي مقاطعة من الكيبورد أو الماوس) علم التعقب :TF 0يعمل المعالج Runدفعة واحدة ثم يعطينا ناتج ( مترجم ). 1ينفذ البرنامج خطوة خطوة ويعطينا ناتج التنفيذ فو ار ( مفسر ) . أعالم الحالة: علم الحمل :CF 0عندما ال يكون لدينا حمل خارجي. 1عندما يكون لدينا حمل من الخانة األكثر أهمية للخارج ( حمل خارجي ) . علم االزدواجية :PF 0عندما يكون عدد الواحدات فردي في byteاألول من الناتج. 1عندما يكون عدد الواحدات زوجي في byteاألول من الناتج. علم الحمل المساعد :AF 0عندما ال يكون لدينا حمل من الخانة 4إلى .5 1عندما يكون لدينا حمل من الخانة 4إلى 5 علم الصفري :ZF 0إذا لم يكن الناتج كله أصفار. 1إذا كان الناتج كله أصفار علم اإلشارة :SF 0إذا كانت الخانة األكثر أهمية 0ويعني العدد موجب. 1إذا كانت الخانة األكثر أهمية 1ويعني العدد سالب. علم الطفحان :OF 0عندما ال يكون لدينا انزياح داخلي أو خارجي. 1عندما يكون لدينا انزياح داخلي أو خارجي. مالحظة :إذا كان لدينا انزياح داخلي وخارجي معًا قيمة ال OFتكون صفر ويدل ذلك على تغير إشارة العدد .