إنتل 8086

إنتل 8086
وحدة المعالجة المركزية

معالج إنتل 8086
أُنتج: من 1978 إلى 1998

إنتل 8086 عبارة عن معالج من 16 بت صُمم من قبل شركة إنتل، واستغرق تصميمه بين أوائل عام 1976 إلى أواسط عام 1978.[1][2][3] وهو معالج يتعامل مع خانة بطول 16-bits (يتم التعامل 16-bit في المرة الواحدة). بعد ذلك وفي سنة 1979 طرح المعالج 8088 وهو مشابه للمعالج 8086 من ناحية التركيب الداخلي ولكنه مختلف عنه في التعامل العام الخارجي حيث يتم فيه التعامل الخارجي بخانة طولها 8-bits بينما يتعامل المعالج 8086 باستخدام نبضة سريعة وبالتالي فان أداءه أفضل (زيادة سرعة النبضة تعنى زيادة التردد وبالتالي نقصان الزمن اللازم لتنفيذ أمر محدد ويتم تعريف سرعة المعالج بتحديد التردد الأقصى الذي يعمل به وتقاس وحدة التردد بالميجاهيرتز MHz).

قامت شركة IBM باختيار المعالج 8088 لبناء الحاسب الشخصي IBM PC وذلك لسهولة التعامل معه بالإضافة إلي رخص التكلفة حيث كان من المكلف في ذلك الوقت بناء الحاسب على المعالج 8086 ذات الـ16-bit وذلك بسبب ارتفاع تكلفة بناء نظام بوحدات مساعده تتعامل مع كلمة بطول 16-bit في ذلك الزمن.

يتعامل المعالجان 8086 و8088 بنفس التعليمات وهما يمثلان نقطة البداية التي بدأت منها المعالجات الجديدة والتي يتم استعمالها في أجهزة الحاسب الشخصية وبالتالي فان البرامج التي تعمل على المعالجين 8086 و8088 ما زالت صالحة للعمل في المعالجات الجديدة وهو ما أسميناه بالتوافقية في البرامج.

المسجلات في المعالج

المسجلات

يتم تخزين البيانات داخل المعالج في المسجلات، ويتم تقسيم المسجلات إلى:

مسجلات بيانات: ويتم فيها التعامل مع البيانات من حيث التخزين وإجراء العمليات الحسابية والمنطقية.

مسجلات عناوين: ويتم فيها تخزين العناوين المختلفة.

مسجل الحالات: وهو يحتوي على حالة المعالج بعد تنفيذ أمر محدد.

ويحتوي المعالج على عدد 14 مسجل وسنقوم في الجزء التالي بتوضيح أسماء ووظيفة كل مسجل.

مسجلات البيانات DX,CX,BX,AX

يتم استخدام هذه المسجلات الأربعة في التعامل مع البيانات داخل المعالج ويمكن للمبرمج التعامل مباشرة مع هذه المسجلات. وبالرغم من أن المعالج يستطيع أن يتعامل مع بيانات في الذاكرة إلا أن التعامل مع المسجلات يكون أسرع بكثير من التعامل مع الذاكرة (يلزمه عدد اقل من النبضات) وبالتالي نفضل دائماً التعامل مع المسجلات لسرعتها. وهذا سبب زيادة عدد المسجلات في المعالجات الحديثة.

يمكن التعامل مع كل من هذه المسجلات على أنه وحده واحدة بحجم 16-BITS أو على وحدتين كل واحدة بسعة 8-BITS إحداهما العليا HIGH والثانية المنخفضة LOW مثلا يمكن التعامل مع المسجل AX على انه مسجل بحجم 16-BITS أو التعامل مع النصف العلوي (HIGH) AH على انه مسجل 8-BITS والمسجل المنخفض AL (LOW) على أنه مسجل 8-BITS . وبالمثل مع المسجلات D،C،B وبالتالي يصبح لدينا 8 مسجلات من النوع 8-BITS أو أربعة مسجلات من النوع 16-BITS .

بالرغم أن المسجلات الأربعة ذات استخدامات عامه GENERAL PURPOSE REGISTERS بحيث يمكن استخدامها في أي استخدامات عامه إلا أن لكل مسجل استخداماً خاصاً نتناوله في الجزء التالي:

1-المسجل (Accumulator) AX

يعتبر المسجل AX هو المسجل المفضل للاستخدام في عمليات الحساب والمنطق ونقل البيانات والتعامل مع الذاكرة وموانئ الإدخال والإخراج. واستخدامه يولد برامج أقصر ويزيد من كفاءة البرنامج. حيث يجب مثلا في عمليه ضرب رقمين وضع أحد الرقمين فيه مع وضع القيمة المطلوب إخراجها إلي ميناء خروج محدد فيه ثم تتم قراءه القيمة التي يتم إدخالها من ميناء خروج محدد فيه دائما. وعموما يتم التعامل مع المسجل AX على أنه أهم المسجلات الموجودة في المعالج.

2-المسجل (Base Register) BX

يستخدم المسجل BX في عنونه الذاكرة حيث تتطلب بعض العمليات التعامل مع الذاكرة بمؤشر محدد ويتم تغيير قيمه المؤشر لإجراء عمليه مسح لجزء محدد من الذاكرة كما سنرى فيما بعد.

3-المسجل (Count Register) CX

يتم استخدام المسجل CX كعداد للتحكم بعدد مرات تكرار مجموعه محدده من التعليمات.كذلك يتم استخدامه في تكرار عمليه دوران مسجل لعدد محدد من المرات.

4-المسجل (Data Register )DX

يتم استخدامه في عمليات الضرب والقسمة كذلك يتم استخدامه كمؤشر لموانئ الإدخال والإخراج عند استخدام عمليات الإدخال والإخراج.

مسجلات المقاطع CS, DS, SS, ES

يتم استخدام هذه المسجلات لتحديد عنوان محدد في الذاكرة. ولتوضيح وظيفة هذه المسجلات يجب في البداية توضيح طريقة تنظيم الذاكرة.

نعلم أن المعالج 8088 يتعامل مع 20 إشارة عناوين (ناقل العناوين Address Bus يحتوي على 20 إشارة) وبالتالي يمكن مخاطبة ذاكرة تصل إلى 2 20 = 1,048,576 أي 1 Mbytes .

ونجد أن عناوين أول 5 خانات في الذاكرة هي :

                                   00000 h           =           0000 0000 0000 0000 0000
                                   00001 h            =           0000 0000 0000 0000 0001
                                   00002 h            =           0000 0000 0000 0000 0010
                                   00003 h            =           0000 0000 0000 0000 0011
                                   00004 h            =           0000 0000 0000 0000 0100

ولأن العناوين في الصورة الثنائية تكون طويلة جداً فمن الأسهل التعامل مع العناوين بكتابتها في الصورة السداسية عشر وبالتالي يكون عنوان أول خانة في الذاكرة هو 00000h وعنوان آخر خانة هو FFFFFh .

مما سبق يتضح أن العنوان يتكون من 20 خانة بينما كل المسجلات الموجودة داخل المعالج ذات طول مقداره 16 خانة فقط مما يجعل مخاطبة الذاكرة كلها مستحيلة باستخدام مسجل واحد فقط (لاحظ أن المسجل الواحد باستطاعته مخاطبة ذاكرة تصل إلي 64 Kbytes فقط) ونتيجة لظهور هذه المشكلة تم تقسيم الذاكرة إلي مجموعة من المقاطع Segments كل مقطع بسعة 64 K Bytes كما سنوضح في الجزء التالي.

أنماط العنونة

لتوضيح أنماط العنونة المستخدمة بدأ من سلسلة 80x86، سنستخدم التعليمة MOV :

8086 mov instruction

  • نمط عنونة السجل register addressing mode
  • نمط العنونة الفوري immediate addressing mode
  • نمط العنونة المباشر direct addressing mode
  • نمط المسجل غير المباشر indirect register addressing mode
  • العنونة بالقاعدة مع الفهرسة base plus index addressing mode
نمط العنونة شرح مثال
نمط عنونة السجل يكون في التعليمة المصدر والوجهة destination and source عبارة عن مسجلات
معروفة في المعالج.
MOV AX,BX

سيقوم بنسخ محتوى BX إلى AX

نمط العنونة الفوري يكون المصدر عبارة عن رقم صراحة والمراد التعامل معه مباشرة. MOV AX,1004H

سيقوم بوضع القيمة 1004 السداسية عشرة في المسجل الجهة AX.

نمط العنونة المباشر يتم ذكر العنوان الفعلي(المؤلف من 16 بت ويتم بألية معينة الحصول على
العنوان الكامل المؤلف من 20 بت 

en:Physical address).

MOV AL,1000H

يولد العنوان الفيزيائي من العنوان الفعلي ثم يذهب لموقع الكلمة وينسخها للمسجل AL.

نمط المسجل غير المباشر يكون العنوان الفعلي (عنوان الإزاحة) موجود ضمن مسجل يذكر اسمه وقد يكون

أحد المسجلات التالبة :BX، BP، SI وندل على هذه الحالة تميزاً لها عن حالة عنونة السجل بأن نضع اسم المسجل ضمن قوسين [].

MOV AX,[BX]

سينسخ محتوى الذاكرة الموجود في الموقع الذي يحدده محتوى BX إلى AX.

العنونة بالقاعدة مع الفهرسة يتم فيها الحصول على العنوان الفعلي عير جمع قيمة الإزاحة إن وجدت مع

المسجل BX أو BP مع مسجل الفهرسة DI أو SI.

MOV AX,[Bx+DI+2]

انظر أيضا

وصلات خارجية

مراجع

  1. ^ "معلومات عن إنتل 8086 على موقع academic.microsoft.com". academic.microsoft.com. مؤرشف من الأصل في 2020-04-14.
  2. ^ "معلومات عن إنتل 8086 على موقع id.loc.gov". id.loc.gov. مؤرشف من الأصل في 2020-04-14.
  3. ^ "معلومات عن إنتل 8086 على موقع catalogue.bnf.fr". catalogue.bnf.fr. مؤرشف من الأصل في 2019-06-23.