Professional Documents
Culture Documents
جامعة الشام الخاصة محاضرة اولى معالجات-1
جامعة الشام الخاصة محاضرة اولى معالجات-1
جامعة الشام الخاصة محاضرة اولى معالجات-1
RAM ROM
وحدات الذاكرة :
البت ) : (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وهي عملية تحويل برنامج مكتوب
بلغة التجميع بمساعدة األسمبلر إلى لغة الماكينة
(أنظمة العد)
تقسيم العمل بين BIU & EUمما يؤدي الى زيادة سرعة العمل.
8086المخطط البنيوي لـ
Memory
∑ Interface
Instruction
Decoder
AH AL
BH BL ARITHMETIC
CH CL LOGIC UNIT
CONTROL
DH DL
SYSTEM
STACK POINTER (SP)
BASE POINTER (BP) OPERANDS
FLAGS
SOURCE INDEX (SI)
DESTINATION INDEX (DI)
EU
Execution Unitأقسام
األقسام الرئيسية :
مفسر (مفكك) أوامر . Decoder ّ •
• نظام تحكم .
• ALUوحدة الحساب والمنطق .
• مسجالت أغراض عامة .
• مسجل األعالم (الرايات)
• مسجالت الفهرسة والتأشير .
ُ مف ّكك (مترجم,مفسر) األوامر
يفسر األوامر المجلوبة من الذاكرة ويحدد المعطيات المطلوبة
ويقولب األوامر إلى سالسل يمكن لوحدة التنفيذ أن تفهمها وتنفذها.
نظام التحكم
يولد إشارات التحكم إلجراء العمليات الداخلية للمعالج
الصغري.
– رتل األوامر
– سجالت المقاطع
– مؤشر األوامر
Memory
∑ Interface
Instruction
Decoder
AH AL
BH BL ARITHMETIC
CH CL LOGIC UNIT
CONTROL
DH DL
SYSTEM
STACK POINTER (SP)
BASE POINTER (BP) OPERANDS
FLAGS
SOURCE INDEX (SI)
DESTINATION INDEX (DI)
EU
رتل التعليمة
يعمل هذا المعالج بشكل تفرعي وظيفيا ً
عندما تكون وحدة التنفيذ مشغولة بتفكيك أمر أو تنفيذه ال تكون
الممرات مستخدمة
في هذا الوقت من الممكن جلب 6تعليمات عبر الممرات وتنفيذها
الحقا في وحدة التنفيذ وهذا ما يمكننا من فعله الرتل.
وحدة مالئمة الممرات تخزن هذه التعليمات المجلوبة سابقا ً وذلك في
رتل التعليمة الذي يعمل بتقنية . FIFO
عندما تكون وحدة التنفيذ جاهزة للتعامل مع تعليمة جديدة يتم أخذها
من هذا الرتل الموجود في وحدة موائمة الممرات .
Pipeliningعملية الـ
ال تنتظر الـ EUوحدة الـ BIUحتى تقوم بجلب التعليمة
التالية من الذاكرة .
00000h
15 0
مقطع الشيفرة CS
CS
DS مقطع البيانات DS 64 KB
SS
ES مقطع المكدس SS
مقطع البيانات
اإلضافي ES
FFFFFh
ً
ثانيا مسجالت الفهرسة و التأشري
وهي عبارة عن أربعة مسجالت مساعدة تساعد في إيجاد العنوان الفيزيائي
بالتعاون مع مسجالت المقاطع ،و طول هذه المسجالت 16بت أي 2بايت ،و
هي :
يخزن في هذا المسجل عنوان يدل على اإلزاحة ضمن مقطع البيانات ، DS
بمعنى آخر يستعمل في االحتفاظ بالعناوين الفعالة من أجل التعليمات التي تتناول
البيانات المخزنة في مقطع البيانات في الذاكرة.
تابع مسجالت الفهرسة و التأشري
.2مسجل دليل الهدف Destination Index Register DI
يخزن فيه عنوان يدل على اإلزاحة ضمن مقطع البيانات اإلضافي ، ESبمعنى
آخر يستعمل مسجل دليل الهدف DIمن أجل استنتاج العنوان الفيزيائي الذي
يحدد موقع بيانات معينة في حجرة الذاكرة ضمن مقطع البيانات االضافي .
تابع مسجالت الفهرسة و التأشري
.3مسجل مؤشر المكدس Stack Pointer Register SP
يسمح مؤشر المكدس بوصول سهل للحجرات في مقطع المكدس الموجود في
الذاكرة حيث أن القيمة في SPتمثل العنوان الفعال لحجرة المكدس التالية التي
يمكن الوصول إليها نسبة إلى العنوان الحالي الموجود في مسجل مقطع المكدس
SSو يحتفظ SPدوما بقيمة تدل على قمة المكدس ،هذا و إن قيمة هذا المسجل
يحتوي قيمة تدل على اإلزاحة بالنسبة لمقطع المكدس SSو هو يستخدم لقراءة
البيانات ضمن مقطع المكدس بدون إزالتها من المكدس.
مسجل مؤشر التعليمة Instruction Pointer IP
هذا المسجل يحدد موقع التعليمة التالية التي ستنفذ في مقطع الشفرة و بعد جلب
شفرة التعليمة من الذاكرة فإن BIUتعدل قيمة IPبحيث تشير إلى التعليمة التالية
في الذاكرة ( التعديل يتم آليا ).
مسجل احلالة (األعالم) Status (Flags) Register
هو مسجل ذو 16بت موجود في وحدة التنفيذ كما هو واضح
بالشكل :
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
إذا وضع المبرمج بها القيمة 1يتم تنفيذ أمر سيطرة Trap flag TF
واحد فقط من األوامر و بعدها تأخذ القيمة صفر
نضعه 1للسماح لعمليات interruptفي مدخل سيطرة Interrupt flag IF
interruptللمعالج
لتحديد اتجاه الحركة في حالة قراءة النصوص سيطرة Direction flag DF
تأخذ 1إذا كانت النتيجة أكبر من المكان وضع Overflow flag OF
المخصص لحفظها و أال تأخذ صفر
أعالم احلالة
تشير إلى الحاالت الناتجة كنتيجة لتنفيذ تعليمة منطقية أو رياضية حيث تكون إما
في حالة واحد منطقي Setأو تكون في حالة صفر منطقي ، Resetو سنلخص
فيما يلي عمل كل منها:
CF=1
تابع أمثلة على علم احملمول
ب .حالة االستعارة
الحظ بأن العدد األول الممثل ثنائيا أصغر من العدد الثاني الممثل ثنائيا أيضا ،
لذلك فعند إجراء عملية الطرح و في مثالنا هذا تخيلنا بت تاسع فيه القيمة واحد
(استعرنا) و بالتالي فإن CF=1أي لدينا استعارة من أجل البت األعلى رتبة.
7 6 5 4 3 2 1 0
1 0 1 0 1 1 0 1 1
1 1 1 1 1 0 0 0
**و في المثالين السابقين نطبق نفس الكالم من أجل 2بايت و لكن االنزياح
الخارج و االستعارة تكون من أجل البت الخامس عشر (األخير).
ً
ثانيا :علم الزوجية )Parity Flag (PF
يصبح في حالة واحد منطقي إذا كانت نتيجة آخر تعليمة تحتوي على عددا زوجيا
من الخانات التي قيمتها الواحد ( بعد التحويل إلى النظام الثنائي طبعا ) و إال
يكون في حالة الصفر المنطقي.
نالحظ أن علم PFيفحص البايت السفلي فقط حتى لو كنا نتعامل مع كلمة ( 2
بايت ) ،أما عندما نتعامل مع بايت واحد فقط فإنه يفحصه كله.
ً
ثالثا :علم االنزياح املساعد )Auxiliary Flag (AF
يكون في حالة الواحد المنطقي إذا وجد انزياح من النصف السفلي إلى النصف
العلوي أو استعارة من النصف العلوي إلى النصف السفلي و ذلك من أجل البايت
السفلي من الكلمة ( 2بايت ) و بمعنى آخر أنه إذا كان لدينا انزياح من الخانة 3
إلى الخانة 4فإن AF=1و ذلك في حال كانت البيانات بايت واحد أو 2بايت
(كلمة) ،و فيما عدا ذلك يكون . AF=0
مثال على علم االنزياح املساعد
في هذه الحالة يكون AF=0ألنه لم يكن معنا باليد واحد عند االنتقال من
الخانة الثالثة إلى الخانة الرابعة في الناتج
يصبح في حالة صفر منطقي عندما يكون ناتج آخر عملية حسابية أو منطقية ال
يساوي الصفر.
ً
خامسا :علم اإلشارة )Sign Flag (SF
يكون علم SFفي حالة واحد منطقي Setإذا كانت نتيجة آخر عملية حسابية عددا سالبا.
يكون علم SFفي حالة صفر منطقي Resetإذا كانت نتيجة آخر عملية حسابية عددا
موجبا.
مصطلح :من إحدى طرق تمثيل األعداد السالبة في الكمبيوتر هي اعتبار الخانة األخيرة
مخصصة لإلشارة و بما أن البايت مكون من ثمانية خانات فسيتم اقتطاع الخانة األخيرة منه
من أجل اإلشارة فإن احتوت على القيمة واحد فإن الخانات السبعة الباقية هي عدد ثنائي
سالب أما إذا احتوت على القيمة صفر فإن الخانات السبعة المتبقية ما هي إال عدد موجب.
و بذلك يكون SFهو نسخة عن الخانة األخيرة في الناتج عند اعتماد هذا النظام لتمثيل
األعداد السالبة.
ً
سادسا :علم الفيضان )Overflow Flag (OF
يكون في حالة واحد منطقي عندما ال تتسع النتيجة في المكان المخصص
لتخزينها أي تتجاوز القدرة التخزينية ،أما إذا لم تكن النتيجة خارج المجال
المحدد فإن OFيبقى في حالة الصفر المنطقي.
محتواها لذلك يمكن قراءتها فقط و ال يمكن تغيير محتوياتها بواسطة تعليمات
برمجية مباشرة.
المعالج مزود بتعليمات تستطيع اختبار حالة هذه األعالم لتغيير تتابع تنفيذ
البرنامج فمثال يمكن اختبار علم ZF=1كشرط من أجل القفز إلى جزء آخر من
البرنامج.
15 0
OF DF IF TF SF ZF AF PF CF
يوضع بالحالة واحد منطقي عندما نرغب بتنفيذ البرنامج خطوة خطوة و هو مفيد
عندما نريد تصحيح برنامجنا و استكشاف مواقع األخطاء.
مالحظة :المقاطعة هي عبارة عن خدمة تؤدي إلى عمل معين فمثال المقاطعة
21و التي من أحد خدماتها العودة إلى نظام التشغيل.
أعالم التحكم
ثالثا ً :علم االتجاه )Direction Flag (DF
عندما يكون في حالة واحد منطقي فإن السلسلة تكون من العنوان األعلى إلى
العنوان األدنى.
عندما يكون في حالة صفر منطقي فإن السلسلة تكون من العنوان األدنى إلى
العنوان األعلى.
تقطيع الذاكرة
. بت خط عنونة20 يملك8086
3
4
4
5
6 1MB
7 Address
8 Range
9
مجال
10
11
العنونة
12
13
14
15
16 FFFFFH
Code Segment مقطع تخزين الشيفرة
هو المنطقة من الذاكرة التي تتم فيها تخزين التعليمات التي يتم
جلبها من BIUأي أنها تخزن كود البرنامج المراد تنفيذه.
4
Data & Extra 5
مقطعSegments 6
البيانات والمقطع 7
االضافي وهما 8
1MB
متقاطعان 9 Address
10 Range
11
12
13
14
15
Starting Addresses of
Segments
8
1MB
9
Address
10
Range
11
12
13
14
15
4
Code Byte 38AB4H MOV AL, BL
Code
Segment
Extra
Segment
7 1MB
8 Address
9 Range
CS 348A 0 H 10
11
IP + 4214 H
12
العنوان الفيزيائي 38AB4 H 13
14
15
Stack
Segment FFFFFH
Stack Segment (SS) Register
Stack Pointer (SP) Register
العنوان األول لمقطع المكدس يتوضع في هذا مسجل .SS
يوجد هذا السجل في وحدة مالئمة الممرات .
املقاطعات : Interrupts
و هي الوسيلة الوحيدة اليت تتمكن هبا الدارات االلكرتونية املوجودة خارج وحدة املعاجلة املركزية
من لفت انتباه هذه الوحدة إلعالمها حبدوث طارئ معني
هو جزء من ذاكرة النظام RAMووحدة املعاجلة املركزية تعطي معامل خاصة للولوج اىل هذا
اجلزء وتتابع مساره .تضاف املعطيات يف قمة املكدس وتنتزع من القمة أيضا ويعمل وفق الرتتيب
من يدخل اخرا خيرج أوال } {LIFO} {lost in first onيعترب املكدس مثاليا عندما
يستخدم كمكان جيب الرجوع اليه يف برنامج ما على التيار أن الرجوع سيكون أوال اىل الربنامج
الطالب الستدعاء االحداث عهدا وهبذه الطريقة يرتب املكدس أعمال الربنامج والربامج الفرعية
وبرامج املقاطعة
حيدد عنوان املنفذ موقعا مرافقا جلهاز دخل/خرج ما بدال من جزء من الذاكرة الرئيسية أو تعليمة
أخرى (عنوان منفذ دخل/خرج ما خيتلف عن عنوان ذاكرة )
مثال 003D8Hعنوان منفذ ال يرتبط بعنوان الذاكرة 003D8Hالن
تعليمات الدخل /خرج INو OUTبينما تعليمات الذاكرة MOVأي التعليمات خمتلفة
وتعطي معظم اللغات الراقية تعليمات خمتلفة للولوج اىل الدخل /خرج لغة
البيسك INPو OUTولغة INP Cو OUT P
كيف يستخدم المعالج 8086المقاطعات : Interrupts
املقاطعة اشارة اىل املعاجل للفت انتباهه وتكون اما برجمية او من كيان صلب (فيزيائية ) أي من
دارة حتكم ..
ويف كال احلالتني يتوقف املعاجل عن أي مهمة جارية وينفذ برنامج فرعيا يسمى برنامج املقاطعة
ويستأنف عمله بعد انتهاء برنامج املقاطعة