جامعة الشام الخاصة مقرر تنظيم الحاسب ولغة التجميع المحاضرة األولــــى المعالج : • عبارة عن القلب النابض للحاسوب • يقوم بتنفيذ األوامر و البرامج المكتوبة بلغة اآللة فقط • من أشهر الشركات المنتجة للمعالجات شركة Intel الذاكرة : • تستخدم لتخزين البيانات • تتكون من خاليا و لكل خلية عنوان • تقسم إلى قسمين رئيسيين : ROM RAM وحدات الذاكرة : • • • • • • • البت ) : (bitوهي أصغر وحدة تخزين ()1 , 0 النيبل ) : )nibbleوهي أربع بتات البايت ( : )byteوهوعبارة عن ثمانية بتات كلمة ) : )wordوهوعبارة عن 16بتا الكلمة المزدوجة ) : )Double wordوهوعبارة عن 32بتا كيلو بايت ) : )kilo byteوهوعبارة عن 1024بايت ميجابايت ) :(mega byteوهوعبارة عن 1024كيلوبايت الناقل : • • وهو مجموعة من األسالك التي تقوم بنقل البيانات بين المعالج و الذاكرة ووحدات اإلدخال و اإلخراج يتألف الناقل من : .Iناقل العناوين ()Address bus .IIنافل البيانات ()Data bus .IIIخطوط التحكم و السيطرة ()control lines مكونات المعالج Arithmetic-logic unit وحدة الحساب و المنطق (ALU) )flag register) مسجل الرايات )registers) المسجالت ، )command decoder( مكونات أخرى مثل )instruction queue( ، )address buffer( • • • • لغات البرمجة )machine language( • لغة االلة )assembly language) • لغة التجميع )high level language( • لغات عليا لغة اسمبلي ASSEMBLY • هي لغة التجميع • اسمبلر(:)assemblerعبارة عن برنامج يقوم بتحويل البرامج التي تكتب بلغة التجميع إلى لغة الماكينة • اسمبلي (:)assemblyوهي عملية تحويل برنامج مكتوب بلغة التجميع بمساعدة األسمبلر إلى لغة الماكينة (أنظمة العد) النظام الثنائي : – يتكون من الرموز 1 , 0 – لكل بت قيمة كما في الميزان العشري البت األولى الثانية الثالثة القيمة 1 2 4 الرابعة الخامسة السادسة السابعة الثامنة 8 16 32 64 128 النظام العشري : يتكون من الرموز 9,8,7,6,5,4,3,2,1,0 النظام السادس عشر( :) hexadicemal يتكون من الرموز 9,8,7,6,5,4,3,2,1,0,A,B,C,D,E,F الخانة القيمة األولى 1 الثانية 16 الثالثة 256 جدول ربط نظم العد العشري الثنائي السادس عشر 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F كتابة األعداد في لغة التجميع .1الثنائي 10111B ،110B : .2السادس عشر 11H ،12AH ، 10H : .3العشري 100D ، 100 ، 102 ، 11D : 8086مقدمة عن المعالج الصُّ غري 8086المعالج الصُّ غري ينتمي هذا المعالج إلى عائلة المعالجات الصُّغرية الشهيرة – 8086, 80186, 80286, 80386, 80486, Pentium قامت شركة انتل INTELباإلعالن عنه عام .1978 يتعامل 8086مع طول كلمة 16-bitو فيه: 16 خط نقل معطيات. 20 ناقل (ممر) عنونة. 8086البنية الداخلية لمعالج بشكل تفرعي حيث 8086 :يعالج وحدة المعالجة المركزية تتألف من جزئين يعمالن على التوازي Execution Unitوحدة التنفيذ 8086 CPU Bus Interface Unitوحدة مالئمة الممرات Bus Interface )Unit (BIU وظائف الـ : CPU (Fetchجلب) Execution Decodeتفسير األمر وتحديد البيانات) ( Unit )(EU Execute ( تنفيذ) BIUوظائف إرسال العناوين الى مواقع في الذاكرة جلب األوامر من الذاكرة قراءة /ارسال المعطيات من /إلى الذاكرة العشوائية إرسال عناوين المعطيات إلى المنافذ قراءة/كتابة المعطيات من/الى منافذ الدخل/الخرج وظائف الـ EU إخبار الـ BIUعناوين األوامر والمعطيات لجلبها. تفكيك األوامر و تنفيذها. تقسيم العمل بين BIU & EUمما يؤدي الى زيادة سرعة العمل. 8086المخطط البنيوي لـ Memory Interface ∑ BIU EXTRA SEGMENT (ES) CODE SEGMENT (CS) 6 5 4 3 2 1 STACK SEGMENT (SS) DATA SEGMENT (DS) Instruction Queue INSTRUCTION POINTER (IP) Instruction Decoder AH AL BH BL CH CL DH DL ARITHMETIC LOGIC UNIT CONTROL SYSTEM STACK POINTER (SP) BASE POINTER (BP) SOURCE INDEX (SI) DESTINATION INDEX (DI) OPERANDS FLAGS EU Execution Unitأقسام األقسام الرئيسية : مفسر (مفكك) أوامر . Decoder • ّ • نظام تحكم . • ALUوحدة الحساب والمنطق . • مسجالت أغراض عامة . • مسجل األعالم (الرايات) • مسجالت الفهرسة والتأشير . ُ مف ّكك (مترجم,مفسر) األوامر يفسر األوامر المجلوبة من الذاكرة ويحدد المعطيات المطلوبة ويقولب األوامر إلى سالسل يمكن لوحدة التنفيذ أن تفهمها وتنفذها. نظام التحكم يولد إشارات التحكم إلجراء العمليات الداخلية للمعالج الصغري. وحدة الحساب والمنطق خالل 16 bitيتم اجراء العمليات الحسابية والمنطقية جمع وطرح وضرب او منطقية كـ And , Or , Nandالخ مسجالت األغراض العا ّمة AL AH BL BH CL CH تملك EUوحدة التنفيذ 8مسجالت عامة. يمكن استخدامها بشكل فردي وأيضا ً استخدام 8بت فقط منها DL DH مسجل ALيطلق عليه المراكم. AX AL AH BX BL BH CX CL CH DX DL DH يمكن دمج مسجلين بمسجل واحد وذلك بغية استخدمها لبيانات من طول 16بت. المسجالت الصالحة الستعمالها كثنائيات هي– AX, BX, CX, DX سجل أعالم (رايات) الحالة يمتلك معالج 8086مسجل أعالم طوله 16بت. منها 9بتات تم ّثل األعالم الفعالة. يوجد نوعان من الرايات : .1رايات مشروطة :تحدد قيمة ب ّتها من خالل نتيجة بعض العمليات الحسابية والمنطقية التي تطبق في وحدة التنفيذ. .2رايات تحكمية :تستخدم ألغراض تحكمية في بعض العمليات للمعالج. وحدة مالئمة (موائمة) الممرات األقسام الرئيسية: – رتل األوامر – سجالت المقاطع – مؤشر األوامر Memory Interface ∑ BIU EXTRA SEGMENT (ES) CODE SEGMENT (CS) 6 5 4 3 2 1 STACK SEGMENT (SS) DATA SEGMENT (DS) Instruction Queue INSTRUCTION POINTER (IP) Instruction Decoder AH AL BH BL CH CL DH DL ARITHMETIC LOGIC UNIT CONTROL SYSTEM STACK POINTER (SP) BASE POINTER (BP) SOURCE INDEX (SI) DESTINATION INDEX (DI) OPERANDS FLAGS EU رتل التعليمة يعمل هذا المعالج بشكل تفرعي وظيفيا ً عندما تكون وحدة التنفيذ مشغولة بتفكيك أمر أو تنفيذه ال تكون الممرات مستخدمة في هذا الوقت من الممكن جلب 6تعليمات عبر الممرات وتنفيذها الحقا في وحدة التنفيذ وهذا ما يمكننا من فعله الرتل. وحدة مالئمة الممرات تخزن هذه التعليمات المجلوبة سابقا ً وذلك في رتل التعليمة الذي يعمل بتقنية . FIFO عندما تكون وحدة التنفيذ جاهزة للتعامل مع تعليمة جديدة يتم أخذها من هذا الرتل الموجود في وحدة موائمة الممرات . Pipeliningعملية الـ ال تنتظر الـ EUوحدة الـ BIUحتى تقوم بجلب التعليمة التالية من الذاكرة . لذلك يتواجد الرتل كي يسرع عمل المعالج. عملية جلب تعليمة من الذاكرة في حين أن التعليمة الحالية مازالت تن ّفذ في وحدة التنفيذ تدعى . Pipelining المسجالت • المسجالت هي عبارة ذاكرة سريعة تستخدم لكي يخزن فيها المعالج األرقام التي يريد أن يجري عليها حساباته ،فوحدة الحساب والمنطق ال يمكنها تنفيذ أي عملية حسابية إال بعد أن تجلب األرقام المراد إجراء العمليات عليها إلى المسجالت. حيث أن حجم المسجالت مهم ألنه يحدد حجم البيانات التي يستطيع الحاسب إجراء الحسابات عليها. املسجالت Registers يمتلك المعالج 8086أربعة مجموعات من المسجالت ذات 16بت يستطيع المبرمج الوصول إليها والتعامل معها وهي: – أربعة مسجالت مقاطع . CSR,DSR,SSR,ESR – أربعة مسجالت تأشير و فهرسة . SI,DI,BP,SP – أربعة مسجالت لألغراض العامة . AX,BX,CX,DX – مؤشر التعليمة IP باإلضافة إلى ذلك يوجد مسجل آخر هو مسجل األعالم أو الحالة وهو مسجل بحجم 16بت يستخدم منها المعالج 9خانات فقط. ً أوال مسجالت املقاطع Segment Registers وهي عبارة عن أربعة مسجالت طول كل منها 16 bitأي 2 Bytesوهي: .1مسجل مقطع الشفرة Code Segment Register CSR يحتوي هذا المسجل على عنوان أول حجرة في المقطع المخصص لشفرة البرنامج في الذاكرة ،أي أنه يشير إلى بداية مقطع الشفرة بالذاكرة. .2مسجل مقطع البيانات Data Segment Register DSR يحتوي هذا المسجل على عنوان أول حجرة في مقطع البيانات في الذاكرة ،أي أنه يشير إلى بداية مقطع البيانات بالذاكرة. تابع مسجالت املقاطع .3مسجل مقطع المكدس Stack Segment Register SSR يحتوي هذا المسجل على عنوان أول حجرة في مقطع المكدس في الذاكرة ،أي أنه يشير إلى نهاية مقطع المكدس. .4مسجل مقطع البيانات اإلضافي Extra Segment Register ESR يحتوي هذا المسجل على عنوان أول حجرة في مقطع البيانات اإلضافي في الذاكرة ،أي أنه يشير إلى بداية مقطع البيانات اإلضافي. مسجالت املقاطع للمعاجل الدقيق 8086 00000h مقطع الشيفرة CS 64 KB مقطع البيانات DS 15 0 CS DS SS مقطع المكدس SS مقطع البيانات اإلضافي ES FFFFFh ES ً ثانيا مسجالت الفهرسة و التأشري وهي عبارة عن أربعة مسجالت مساعدة تساعد في إيجاد العنوان الفيزيائي بالتعاون مع مسجالت المقاطع ،و طول هذه المسجالت 16بت أي 2بايت ،و هي : .1مسجل دليل المصدر Source Index Register SI يخزن في هذا المسجل عنوان يدل على اإلزاحة ضمن مقطع البيانات ، DS بمعنى آخر يستعمل في االحتفاظ بالعناوين الفعالة من أجل التعليمات التي تتناول البيانات المخزنة في مقطع البيانات في الذاكرة. تابع مسجالت الفهرسة و التأشري .2مسجل دليل الهدف Destination Index Register DI يخزن فيه عنوان يدل على اإلزاحة ضمن مقطع البيانات اإلضافي ، ESبمعنى آخر يستعمل مسجل دليل الهدف DIمن أجل استنتاج العنوان الفيزيائي الذي يحدد موقع بيانات معينة في حجرة الذاكرة ضمن مقطع البيانات االضافي . تابع مسجالت الفهرسة و التأشري .3مسجل مؤشر المكدس Stack Pointer Register SP يسمح مؤشر المكدس بوصول سهل للحجرات في مقطع المكدس الموجود في الذاكرة حيث أن القيمة في SPتمثل العنوان الفعال لحجرة المكدس التالية التي يمكن الوصول إليها نسبة إلى العنوان الحالي الموجود في مسجل مقطع المكدس SSو يحتفظ SPدوما بقيمة تدل على قمة المكدس ،هذا و إن قيمة هذا المسجل تتعدل تلقائيا عند وضع أو سحب معلومة بالمكدس. تابع مسجالت الفهرسة و التأشري .4مسجل مؤشر القاعدة Base Pointer BP يحتوي قيمة تدل على اإلزاحة بالنسبة لمقطع المكدس SSو هو يستخدم لقراءة البيانات ضمن مقطع المكدس بدون إزالتها من المكدس. مسجل مؤشر التعليمة Instruction Pointer IP هذا المسجل يحدد موقع التعليمة التالية التي ستنفذ في مقطع الشفرة و بعد جلب شفرة التعليمة من الذاكرة فإن BIUتعدل قيمة IPبحيث تشير إلى التعليمة التالية في الذاكرة ( التعديل يتم آليا ). مسجل احلالة (األعالم) Status (Flags) Register هو مسجل ذو 16بت موجود في وحدة التنفيذ كما هو واضح بالشكل : 0 CF 1 2 PF 3 4 AF 5 6 ZF 7 SF 8 TF 9 IF 11 10 OF DF 12 13 14 من الشكل السابق يمكن تقسيم األعالم الى نوعين من االعالم هي : .1أعالم الحالة وهي عبارة عن ستة أعالم هي CF, PF, AF, ZF, SF, OF .2أعالم التحكم وهي عبارة عن ثالثة أعالم للتحكم هي DF, IF, TF 15 الرمز اسم الراية النوع مالحظات CF Carry flag وضع يأخذ 1إذا أعطت البت األخيرة عن اليسار 1إلى الخارج أو أخذت 1من الخارج و إال يأخذ 0 PF Parity flag وضع إذا كان عدد الـ 1في أول 8بتات من النتيجة زوجي تأخذ هذه الراية 1و إال صفر AF Auxiliary flag وضع إذا البت الرابعة البت الخامسة 1أو أخذت البت الرابعة من البت الخامسة 1تأخذ هذه الراية 1و إال صفر ZF Zero flag وضع إذا كانت النتيجة صفر تأخذ هذه الراية 1و إال تأخذ القيمة صفر SF Sign flag وضع إذا كانت النتيجة سالبة تأخذ هذه الراية 1و إال تأخذ القيمة صفر TF Trap flag سيطرة إذا وضع المبرمج بها القيمة 1يتم تنفيذ أمر واحد فقط من األوامر و بعدها تأخذ القيمة صفر IF Interrupt flag سيطرة نضعه 1للسماح لعمليات interruptفي مدخل interruptللمعالج DF Direction flag سيطرة لتحديد اتجاه الحركة في حالة قراءة النصوص OF Overflow flag وضع تأخذ 1إذا كانت النتيجة أكبر من المكان المخصص لحفظها و أال تأخذ صفر أعالم احلالة تشير إلى الحاالت الناتجة كنتيجة لتنفيذ تعليمة منطقية أو رياضية حيث تكون إما في حالة واحد منطقي Setأو تكون في حالة صفر منطقي ، Resetو سنلخص فيما يلي عمل كل منها: أوالً :إشارة المحمول )Carry Flag (CF يكون في حالة الواحد المنطقي إذا وجد حمل خارجي او استعارة من أجل الخانة األخيرة (البت األخير) و ذلك أثناء تنفيذ التعليمات الرياضية. و يكون في حالة الصفر المنطقي إذا لم يوجد حمل أو استعارة من أجل البت األخير. أمثلة على علم احملمول أ.حالة االنزياح : الحظ بأن النتيجة لم تتسع في ثمانية بتات و إنما تحتاج إلى تسع بتات و نعبر عن ذلك بثمانية بتات و CF=1أي أنه لدينا في اليد واحد. ببساطة :فمهما َكب َُر العددان فإن تسعة بتات يمكن أن تستوعبها. 0 0 1 1 2 1 3 0 4 0 5 0 6 1 7 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 CF=1 تابع أمثلة على علم احملمول ب .حالة االستعارة الحظ بأن العدد األول الممثل ثنائيا أصغر من العدد الثاني الممثل ثنائيا أيضا ، لذلك فعند إجراء عملية الطرح و في مثالنا هذا تخيلنا بت تاسع فيه القيمة واحد (استعرنا) و بالتالي فإن CF=1أي لدينا استعارة من أجل البت األعلى رتبة. 0 1 0 1 1 0 2 0 0 3 1 1 4 1 1 5 0 1 6 1 1 7 0 1 1 1 0 0 0 1 1 0 1 **و في المثالين السابقين نطبق نفس الكالم من أجل 2بايت و لكن االنزياح الخارج و االستعارة تكون من أجل البت الخامس عشر (األخير). ً ثانيا :علم الزوجية )Parity Flag (PF يصبح في حالة واحد منطقي إذا كانت نتيجة آخر تعليمة تحتوي على عددا زوجيا من الخانات التي قيمتها الواحد ( بعد التحويل إلى النظام الثنائي طبعا ) و إال يكون في حالة الصفر المنطقي. نالحظ أن علم PFيفحص البايت السفلي فقط حتى لو كنا نتعامل مع كلمة ( 2 بايت ) ،أما عندما نتعامل مع بايت واحد فقط فإنه يفحصه كله. ً ثالثا :علم االنزياح املساعد )Auxiliary Flag (AF يكون في حالة الواحد المنطقي إذا وجد انزياح من النصف السفلي إلى النصف العلوي أو استعارة من النصف العلوي إلى النصف السفلي و ذلك من أجل البايت السفلي من الكلمة ( 2بايت ) و بمعنى آخر أنه إذا كان لدينا انزياح من الخانة 3 إلى الخانة 4فإن AF=1و ذلك في حال كانت البيانات بايت واحد أو 2بايت (كلمة) ،و فيما عدا ذلك يكون . AF=0 مثال على علم االنزياح املساعد في هذه الحالة يكون AF=0ألنه لم يكن معنا باليد واحد عند االنتقال من الخانة الثالثة إلى الخانة الرابعة في الناتج + 0 1 2 3 4 5 6 7 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 1 الخانة الثالثة الخانة الرابعة ً رابعا :علم الصفر )Zero Flag (ZF يصبح في حالة واحد منطقي عندما يكون ناتج آخر عملية حسابية أو منطقية يساوي الصفر. يصبح في حالة صفر منطقي عندما يكون ناتج آخر عملية حسابية أو منطقية ال يساوي الصفر. ً خامسا :علم اإلشارة )Sign Flag (SF يكون علم SFفي حالة واحد منطقي Setإذا كانت نتيجة آخر عملية حسابية عددا سالبا. يكون علم SFفي حالة صفر منطقي Resetإذا كانت نتيجة آخر عملية حسابية عددا موجبا. مصطلح :من إحدى طرق تمثيل األعداد السالبة في الكمبيوتر هي اعتبار الخانة األخيرة مخصصة لإلشارة و بما أن البايت مكون من ثمانية خانات فسيتم اقتطاع الخانة األخيرة منه من أجل اإلشارة فإن احتوت على القيمة واحد فإن الخانات السبعة الباقية هي عدد ثنائي سالب أما إذا احتوت على القيمة صفر فإن الخانات السبعة المتبقية ما هي إال عدد موجب. و بذلك يكون SFهو نسخة عن الخانة األخيرة في الناتج عند اعتماد هذا النظام لتمثيل األعداد السالبة. ً سادسا :علم الفيضان )Overflow Flag (OF يكون في حالة واحد منطقي عندما ال تتسع النتيجة في المكان المخصص لتخزينها أي تتجاوز القدرة التخزينية ،أما إذا لم تكن النتيجة خارج المجال المحدد فإن OFيبقى في حالة الصفر المنطقي. يحدث الفيضان في الحاالت التالية: )1جمع أعداد موجبة كبيرة. )2جمع أعداد سالبة كبيرة. )3طرح عدد موجب كبير من عدد سالب كبير. )4طرح عدد سالب كبير من عدد موجب كبير. تابع االعالم مالحظة :جميع األعالم السابقة ما عدا ُ CFتقرأ فقط أي ال نستطيع تغيير محتواها لذلك يمكن قراءتها فقط و ال يمكن تغيير محتوياتها بواسطة تعليمات برمجية مباشرة. المعالج مزود بتعليمات تستطيع اختبار حالة هذه األعالم لتغيير تتابع تنفيذ البرنامج فمثال يمكن اختبار علم ZF=1كشرط من أجل القفز إلى جزء آخر من البرنامج. و فيما يلي سنشرح أعالم التحكم: مسجل األعالم Flags يحتوي مسجل األعالم على معلومات تعبر عن الوضع الحالي للمعالج ,كما يحوي أيضا المعلومات التي تتحكم بتشغيل المعالج . 0 CF 15 PF AF OF DF IF TF SF ZF أعالم الحالة : CF: PF: AF: ZF: SF: OF: المنقول الندية المنقول المساعد النتيجة الصفرية علم االشارة علم الطفح (الفائض) Microprocessor System Design األعالم التحكمية : IF: DF: TF: تمكين المقاطعة علم االتجاه علم التتبع 3-52 أعالم التحكم أوالً :علم الخطوة الوحيدة )Trap Flag (TF يوضع بالحالة واحد منطقي عندما نرغب بتنفيذ البرنامج خطوة خطوة و هو مفيد عندما نريد تصحيح برنامجنا و استكشاف مواقع األخطاء. ثانيا ً :علم المقاطعة )Interrupt Flag (IF يستخدم من أجل التعبير عن إمكانية أو عدم إمكانية تنفيذ المقاطعة ،فيوضع بالحالة واحد منطقي عندما ال نرغب بتنفيذ أي مقاطعة (المقاطعة محجوبة) أما عند وضعه في حالة الصفر المنطقي فإن المقاطعة مسموح بها. مالحظة :المقاطعة هي عبارة عن خدمة تؤدي إلى عمل معين فمثال المقاطعة 21و التي من أحد خدماتها العودة إلى نظام التشغيل. أعالم التحكم ثالثا ً :علم االتجاه )Direction Flag (DF يدل على اتجاه سير العمليات التسلسلية. عندما يكون في حالة واحد منطقي فإن السلسلة تكون من العنوان األعلى إلى العنوان األدنى. عندما يكون في حالة صفر منطقي فإن السلسلة تكون من العنوان األدنى إلى العنوان األعلى. تقطيع الذاكرة . بت خط عنونة20 يملك8086 . 64KB حجم كل مقطع من المقاطع : هذه المقاطع هي Code segment Stack segment Data segment Extra segment Memory حجم كل64KB مقطع 1 00000H 2 3 4 4 5 6 7 8 9 10 11 1MB Address Range مجال العنونة 12 13 14 15 16 FFFFFH Code Segment مقطع تخزين الشيفرة هو المنطقة من الذاكرة التي تتم فيها تخزين التعليمات التي يتم جلبها من BIUأي أنها تخزن كود البرنامج المراد تنفيذه. مقطع المكدس Stack Segment المكدس الذي يتم فيه تخزين عناوين البيانات التي سيتم معالجتها . المقطعين (اإلضافي -البيانات) Data & Extra Segments يستخدمان لتخزين البيانات التي تستخدم في البرنامج Memory Code Segment مقطع الشيفرة 1 00000H 2 3 4 Data & Extra مقطعSegments البيانات والمقطع االضافي وهما متقاطعان 5 6 7 8 9 10 1MB Address Range 11 12 13 14 15 Stack Segment مقطع المكدس 16 FFFFFH مسجالت المقاطعSegment Registers بت16 تمسك بقيمة أول عنوان من كل مقطع وهي من : المسجالت األربع هي CS (Code Segment register) – DS (Data Segment register) – SS (Stack Segment register) – ES (Extra Segment register) – Memory 1 CS 1000 0H 00000H Code Segment 3 4 DS ES 4000 0H 5000 0H Data Segment Extra Segment Starting Addresses of Segments 7 8 9 10 1MB Address Range 11 12 13 14 15 SS F000 0H Stack Segment FFFFFH عنوان المقطع مؤلف من . 20 bit سجل المقطع يخزن فقط 16بت . يقوم الـ BIUبتصفير البتات األربع الدنيا . على سبيل المثال :إذا كان CS = 348AH سيبدأ مقطع الشيفرة من العنوان 348A0H IPمؤشر التعليمات مسجل من 16 bit مسجل إزاحة حيث أنه يمسك التعليمة الحالية 16 bit في مقطع الشيفرة ويزيح الى التعليمة التالية. تستخدم وحدة مالئمة الممرات كل من CSو IP لمعرفة الموقع الفيزيائي في الذاكرة من 20 bitو جلب البيانات. الذاكرة عنوان بداية مقطع الشفرة 1 348A0H Data Segment IP = 4214H Code Byte 00000H 3 38AB4H MOV AL, BL 4 Code Segment Extra Segment 7 8 9 348A0 H IP + 4214 H العنوان الفيزيائي 38AB4 H CS 1MB Address Range 10 11 12 13 14 15 Stack Segment FFFFFH Stack Segment (SS) Register Stack Pointer (SP) Register العنوان األول لمقطع المكدس يتوضع في هذا مسجل .SS يوجد هذا السجل في وحدة مالئمة الممرات . : SP يمسك 16 bitوهي قمة المكدس أي أنه يؤشر على آخر معطى تم إدخاله إلى المكدس . يتوضع هذا السجل في وحدة التنفيذ . سجالت خاصة أخرى Base Pointer (BP) register وظيفته : • يؤشر على العطيات في المكدس Source Index (SI) register Destination Index (DI) register • تستخدم للتخزين اإلضافي المؤقت للبيانات • تستخدم بشكل رئيسي لتعويض فائض الـ 16بت لبعض البيانات الذي ال يمكن أن تتحمله المسجالت األخرى . وحدة التنفيذ – مسجالت األعالم • 6األعالم هي مؤشرات حالة تبين خصائص آخر تعليمة منطقية أو حسابية على سبيل المثال ,اذا كان المسجل AL=7Fh ونفذت التعليمة : فان التالي سوف يحدث ADD AL , 1: AL = 80h ;CF = 0اليوجد أي منقول من البت السابع ; PF = 0له عدد فردي من الواحدات80h ;AF = 1يوجد منقول من البت الثالث إلى البت الرابع ;ZF = 0النتيجة التساوي الصفر ;SF = 1البت السابع يساوي الواحد ;OF = 1بت اإلشارة قد تغير 66 توصيف المعالج 8086 • 8086هو معالج بـ 16بت للمعطيات ,وهو رقاقة مؤلفة من 40بن ,يتطلب تغذية وحيدة القطبية ( .)5vيستخدم ممر عناوين 20بت .وممر بيانات 16بت .خطوط العنونة العشرون تعمل في نمط العنونة المضاعفة.خطوط العنونة الـ 16المنخفضة هي خطوط مضاعفة مع المعطيات ,وخطوط العنونة الـ 4المرتفعة هي خطوط مضاعفة مع اشارات التحكم .يظهر الرسم البياني اطراف المعالج إنتل 8086في الشكل . 4 : ALEنوع المعلومة الموجودة على مجمل األرجل AD0 – AD15فهي إما معطيات أو عناوين : ALE = 0المعلومات على الخرج هي معطيات . : ALE = 1المعلومات على الخرج هي عناوين . تسمى عملية الفصل بين المعطيات والعناوين بالتوزيع . demultiplexing ) ( BHE (BUS HIGH ENABELإشارة خرج ) :تميز البايت السفلي من البايت العلوي للمعطيات . مقاطعة غير محجوبة NMI non maskable interrputإشارة دخل تنقل المعالج إلى جدول أشعة المقاطعة بعد االنتهاء من التعليمة الحالية . : INTERطلب المقاطعة عندما تكون فعالة ينهي المعالج تنفيذ التعليمة الحالية وينتقل إلى المقاطعة . ( : RESETالتصفير) إشارة دخل إلنهاء جميع أنشطة المعالج الحالية حيث يعود المعالج إلى وضعه األول ويكون محتوى السجالت IB – DS – SS - ESهي 0000Hبينما . CS FFFFH ( READYالجاهزية) :إشارة دخل تساعد في إضافة حاالت إنتظار في حال كون أجهزة الدخل والخرج أو الذواكر أبطأ من المعالج . : TESTإشارة دخل تاتي من المعالج الحسابي 8087يفحص المعالج هذه اإلشارة أثناء تنفيذ التعليمة WAITإذا كانت ( )0يتابع المعالج تنفيذ البرنامج أما إذا كانت ( )1فإنه يتوقف عن تنفيذ البرنامج ،تستخدم هذه اإلشارة لتأمين التزامن بين المعالج 8086والمعالج الحسابي .8087 المخطط الصندوقي للمنظومة • ROMذاكرة للقراءة فقط تحوي برنامج البدء ()start up program • RAMذاكرة الوصول العشوائي: • RAM( DRAMالديناميكية): سعة كبيرة ,تحتاج انعاش (تحديث) • RAM( SRAMالستاتيكية): •استهالك طاقة قليل ,سريعة ,سهلة الربط الذاكرة المعالج الصغري و الدارات المنطقية المرافقة: •متحكم الممر •أجهزة قيادة الممر •المعالج المساعد •مهتز كريستالي •دارة التوقيت (عدادات تقسم التردد الى ترددات أصغر ) التوقيت المعالج ممر النظام (اشارات العناوين و المعطيات و التحكم) دارة المقاطعة عند وقوع أحداث خارجية غير متوقعة يتوجب على المعالج أن يستجيب لهذه المقاطعات (بتنفيذ برنامج خدمة المقاطعة) ثم يجب أن يعود المعالج الى تنفيذ البرنامج األساسي الذي كان يعمل قبل حدوث المقاطعة. التسلسليةI/O بسيطة تحتاج سلكين فقط باالضافة الى األرضي ,بطيئة •الطابعة منخفضة الدقة •المودم •منصة المشغل •الحواسيب الضخمة •الحواسيب الشخصية التفرعيةI/O أسالك كثيرة ,سريعة •الطابعة عالية الدقة •الذاكرة الخارجية •قرص مرن •قرص صلب •قرص مضغوط •أجهزة سريعة أخرى الحاسب الشخصي 640KB DRAM ROM النظام معالج مساعد (من 8087و حتى )80387 سماعة معالج ( من 8086حتى بنتيوم) منطق توقيت )(8253 ممر النظام (اشارات المعطيات و العناوين و التحكم) منطق المقاطعة )(8259 منطق التوسيع متحكم الوصول المباشر للذاكرة )(8237 بطاقة العرض متحكم القرص المنفذ التسلسلي ... مقابس توسيع منطق لوحة المفاتيح ((8253 لوحة المفاتيح كيف يتخاطب المعالج 8086مع الوسط المحيط : يتخاطب املعاجل بثالثة أساليب : – 1بواسطة الولوج املباشر أو غري املباشر للذاكرة direct & indirect memory access – 2عرب منافذ الدخل و اخلرج I/O Port – 3عرب اشارات تدعى إشارات املقاطعة Interrupt يستخدم املعاجل الذاكرة إما لقراءة املعلومات أو لكتابتها يف عناوين ذاكرية تتحدد بعنوان وحيد ،وميكن الولوج للذاكرة بطريقتني : عرب دارة الولوج للذاكرة املباشر ( Direct Memory Access : ) DMA أو عرب املسجالت الداخلية لوحدة املعاجلة املركزية منافذ الدخل اخلرج : I/O Port متثل منافذ الدخل /اخلرج الوسيلة األساسية أمام املعاجل لالتصال مع دارة أخرى غري الذاكرة و تتحدد املنافذ بعناوين وحيدة ( أي عنوان وحيد لكل منفذ من هذه املنافذ ) و ميكن قراءة أو كتابة املعطيات من و إىل أي منفذ من هذه املنافذ . املقاطعات : Interrupts و هي الوسيلة الوحيدة اليت تتمكن هبا الدارات االلكرتونية املوجودة خارج وحدة املعاجلة املركزية من لفت انتباه هذه الوحدة إلعالمها حبدوث طارئ معني صيغ املعطيات يف املعاجل Data format 8086 يعمل املعاجل 8086على أربع صيغ بسيطة .. : و يعمل املعاجل على قيم ذات اشارة و بدون اشارة و حبجم Bit 16 ختزن الكلمات يف الذاكرة ضمن أزواج من اخلانات املتجاورة 1 – Byte = 8 Bit 2 – Word = 16 Bit كيف يعنون المعالج 8086الذاكرة : Address Memory مبا أن املعاجل ذو 16 Bitفإنه يستطيع الولوج إىل أي 64KByteفقط كذاكرة من الناحية النظرية ،لكن من الناحية العملية يستطيع عنونة حيز ذاكرة أكرب من 64 KByteبكثري حبيث يستطيع الولوج إىل 1024 KByteوفق العنونة ذات العشرين Bitهلذا املعاجل و اليت توسع اجملال من إىل 216 2 يقسم املعاجل احليز الذاكري القابل للعنونة إىل مقاطع Segmentsحيتوي كل مقطع على 64KByteمن الذاكرة 20 مسجالت المعالج : 8086 صمم املعاجل 8086لتلقي تعليمات من الذاكرة و تنفيذها و إجناز عمليات حسابية و منطقية على املعطيات و مترير املعطيات من و إىل الذاكرة ،لذلك يستخدم عدد من السجالت ذات طول Bit16 4مسجالت تدعى مسجالت املسودة و حتتفظ بشكل مؤقت باحلدود ( العامل )Operands و بالنتائج املرحلية للعمليات احلسابية و املنطقية 4مسجالت مقطعية Segments Registerحتتفظ بقيم عناوين املقطع 5مسجالت إزاحة Offset Registerحتتفظ باإلزاحات املستخدمة مع قيم مسجالتاملقاطع لتشكيل العناوين الفيزيائية اليت حتدد املواقع يف الذاكرة . 1مسجل يدعى مسجل الرايات Flags Registerو حيتوي على تسع رايات كل منهامتثل بـ 1 Bitلتسجيل معلومات عن حالة املعاجل 8086و للتحكم بعمليات هذا املعاجل .. مسجالت املسودة Scratch – pad Register : حتتفظ باحلدود ( العوامل ) املستخدمة بكثرة و بالنتائج و تعرف باألمساء التالية : AX , BX , CX , DXو كل مسجل طوله 16 Bitو كل مسجل له شقني كل منهما ، 8 Bitوميكن الولوج إىل أي منهما مبعزل عن اآلخر ،و يرمز له بالرمز H , L و لكل مسجل وظيفة خاصة .. ( : AXاملراكم ) Accumulatorيستخدم إلجناز العمليات احلسابية : Base Register : BXيستخدم لإلشارة إىل بداية جدول الرتمجة يف الذاكرة Counter Register : CXاملسجل العداد ،يستخدم كعداد للتحكم مبرات تكرار احللقة و مبرات نقل املعلومات . Date Register : DXيستخدم لتخزين املعطيات لألغراض العامة . مسجالت املقاطع : Segments Register حيتوي العنوان الكامل ملوقع الذاكرة من قيمة مقطع بطول 16Bitو من إزاحة بطول 16Bitو يوجد أربع مسجالت تدعى : SS , ES , DS , CSتستخدم لتعريف أربع مقاطع من الذاكرة خمتلفة كما توجد مخس مسجالت إزاحة ،ميكن استخدامها لإلزاحات النسبية للمعطيات ضمن املقاطع األربعة . املسجل : CS و يعرف مقطع الشيفرة ( ) Code segmentو هي تلك املنطقة من الذاكرة احلاوية على جمموعة التعليمات أو على الربنامج املراد تنفيذه .. املسجل : DS , ESيعرفان مقاطع للمعطيات اليت خيزن الربنامج املعطيات فيها املسجل : SSيعرف مقطع املكدس Stack segment نادرا ما تستخدم الربامج أربع مقاطع مستقلة لعنونة أربع مناطق خمتلفة حبجم 64KByteلكل منها و بدال من ذلك نستخدم قيم املسجالت األربعة احملدودة يف CS , DS , SS , ES باإلشارة إىل مناطق متداخلة يف الذاكرة و بالواقع نعرف مسجالت املقاطع املختلفة مناطق من الذاكرة مستخدمة لوظائف خمتلفة .. (( شكل صغري )) حيتوي كل مسجل على عنوان بداية مقطع يف منطقة خمتلفة من الذاكرة الشكل يبني قيما ملسجالت املقاطع تدل على مواقع يف الذاكرة مستخدمة من قبل برنامج يعمل حتت MS-DOSو انتقيت قيم مسجالت املواقع لتدل يف هذا املثال كال منها إىل منطقة من الذاكرة خمتلفة منطقيا و لكن مع ذلك تتشابه هذه املناطق و املعرف كل منها مبسجل مقطع حجم كل منها 64 KByte تستعمل كل تعليمات املعاجل 8086اليت تلج إىل الذاكرة مسجل مقطع خاص مسجالت اإلزاحة Offset register يوجد مخس مسجالت إزاحة مستخدمة مع مسجالت املقاطع لالحتفاظ بالعناوين املقطعية ، املسجل األول يسمى مؤشر التعليمات ) IP ( Instruction pointerأو ( ) PC حيتوي هذا املسجل على إزاحة التعليمة احلالية ضمن مقطع الشيفرة CODE SEGMENT املسجلني اآلخرين يدعيان :مسجلني الدليلني Index Registerو يستخدمان لعنونة املعطيات يف الذاكرة RAMو مسجالت املكدس Stack Registersيستخدمان ملعاجلة املكدس مسجالت املكدس Stack Register : املسجل األول يدعى ، SP : Stack pointerمؤشر املكدس و الثاين BP : Base Pointerاملؤشر القاعدي . يعطي SPموقع القمة POPاحلايل للمكدس واملسجل BPيستخدم للولوج اىل مقطع املكدس مباشرة املسجالن الدليالن : Index Registerيدعى االول Source indexدليل املصدر ( ) SI و الثاين دليل اجلهة ) DI ( Destination Indexيستخدمان ألغراض عنونة املعطيات مسجل الرايات Flag Register :ميثل جمموعة من البتات للتحكم و احلالة و يتألف من ، 16 bitيتعامل املعاجل مع 9رايات و ترتك 7بتات فارغة ( استخدمت فيما بعد يف املعاجلات الالحقة ) تقسم الرايات إىل جمموعتني األول رايات احلالة Status Flagsو عددها ، 6يشمل معلومات املعاجل ( وتدل على ما جيري نتيجة العمليات احلسابية أو املقارنة ) واجملموعة الثانية 3رايات تدعى رايات التحكم Control Flagsو تتحكم مبهام حمددة للمعاجل 8086 املكدس : Stack هو جزء من ذاكرة النظام RAMووحدة املعاجلة املركزية تعطي معامل خاصة للولوج اىل هذا اجلزء وتتابع مساره .تضاف املعطيات يف قمة املكدس وتنتزع من القمة أيضا ويعمل وفق الرتتيب من يدخل اخرا خيرج أوال } {LIFO} {lost in first onيعترب املكدس مثاليا عندما يستخدم كمكان جيب الرجوع اليه يف برنامج ما على التيار أن الرجوع سيكون أوال اىل الربنامج الطالب الستدعاء االحداث عهدا وهبذه الطريقة يرتب املكدس أعمال الربنامج والربامج الفرعية وبرامج املقاطعة كيف يستعمل املعاجل 8086منافذ الدخل /اخلرج (I/O) Ports يتصل املعاجل مع معظم أجزاء احلاسب باستخدام (I/O) ports وهذه املنافذ ميكن تشبيهها وكأهنا نوافذ تسلكها املعلومات أثناء سفرها من واىل جهاز دخل/خرج كلوحة املفاتيح والطابعة يعرف كل منفذ برقم منفذ وطول ( 16 bitأو بعنوان) ويقع ضمن اجملال OOHوحىت )(FFFFHوتعرف وحدة املعاجلة املركزية أي منفذ من عنوانه وللولوج اىل أي منفذ ترسل وحدة املعاجلة املركزية cpuاشارة عرب ممر النظام System Busإلعالم مجيع االجهزة (الدخل /اخلرج) أن العنوان التايل ميثل عنوان منفذ ال عنوان ذاكرة مث ترسل عنوان املنفذ ويستجيب لذلك املنفذ اخلاص حيدد عنوان املنفذ موقعا مرافقا جلهاز دخل/خرج ما بدال من جزء من الذاكرة الرئيسية أو تعليمة أخرى (عنوان منفذ دخل/خرج ما خيتلف عن عنوان ذاكرة ) مثال 003D8Hعنوان منفذ ال يرتبط بعنوان الذاكرة 003D8Hالن تعليمات الدخل /خرج INو OUTبينما تعليمات الذاكرة MOVأي التعليمات خمتلفة وتعطي معظم اللغات الراقية تعليمات خمتلفة للولوج اىل الدخل /خرج لغة البيسك INPو OUTولغة INP Cو OUT P كيف يستخدم المعالج 8086المقاطعات : Interrupts املقاطعة اشارة اىل املعاجل للفت انتباهه وتكون اما برجمية او من كيان صلب (فيزيائية ) أي من دارة حتكم .. ويف كال احلالتني يتوقف املعاجل عن أي مهمة جارية وينفذ برنامج فرعيا يسمى برنامج املقاطعة ويستأنف عمله بعد انتهاء برنامج املقاطعة