Uploaded by asdmhrdh

معالج صغري عملي 1

advertisement
‫المعالج المصغر‬
‫عملي ( ‪) 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‬تكون صفر ويدل ذلك على تغير إشارة العدد ‪.‬‬
Download