0% found this document useful (0 votes)
6 views9 pages

programming model م5

برمجة programming-model

Uploaded by

khkha415
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views9 pages

programming model م5

برمجة programming-model

Uploaded by

khkha415
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Lecture 5

Microprocessors

Prepared By :

Firas Abdulrahman Yosif


‫‪Microprocessors‬‬

‫‪Programming Model of 8086:‬‬

‫المعالج ‪ 8086‬يتركب من مجموعة من السجالت العامة ‪ AX,BX,CX,DX general register‬ويتركب‬


‫المعالج كذلك من سجالت الفهرسة ‪ Index Register‬وهي ‪ SI,DI‬وكذلك سجالت التأشير ‪Pointe Register‬‬
‫وهي سجالت الـ ‪ BP‬و ‪ , SP‬وايضا يوجد في المعالج سجل االعالم ‪ Flag Register‬ومقاطع الذاكرة‬
‫‪ . Segment Register‬يظهر نموذج البرمجة الخاص بالمعالج الدقيق السجالت الداخلية المختلفة التي يمكن‬
‫للمبرمج الوصول إليها‪ .‬الشكل التالي هو نموذج لـ ‪ 8086‬وبشكل عام ‪ ،‬كل سجل له وظيفة خاصة به‪.‬‬

‫‪1‬‬
Microprocessors

programming model including these registers:


- 4 General Purpose registers ( Data Registers)
- 4 Segment registers
- 2 Pointer registers
- 2 Index registers
- 1 Instruction Pointer register
- 1 Flag register

Registers of 8086

 Data Group of Registers:


‫ ) وتستخدم لتخزين كل من‬General Register)‫ضا بسجالت األغراض العامة‬
ً ‫تسمى هذه السجالت أي‬
‫ بت ويمكن استخدام كل‬16 ‫ هذه كلها سجالت‬.‫) وناتج عمليات الحسابية والمنطقية‬Operands( ‫المعامالت‬
Accumulator ‫ كمجمع‬AX ‫يتم استخدام السجل‬. )‫ بت‬8( ‫ بت أو كجزء‬16 ‫من هذه السجالت كسجل كامل‬
‫ باإلضافة إلى كونه مسجالت لألغراض‬DX ‫ و‬CX ‫ و‬BX ‫ضا استخدام السجل‬
ً ‫) ويمكن أي‬Register)
:‫العامة ممكن ان يستخدم لألغراض الخاصة كما هو موضح في الجدول أدناه‬

AX Accumulator Register

BX Base Register

CX Counter Register

DX Data Register

2
‫‪Microprocessors‬‬

‫‪‬‬ ‫‪Pointer and Index Registers:‬‬


‫‪These registers includes :‬‬

‫‪‬‬ ‫‪Pointer Registers : BP, IP and SP‬‬


‫‪‬‬ ‫‪Index Registers : SI, DI‬‬

‫تستخدم هذه السجالت في تشكيل العنوان الفعال ويمكن تكوين عنوان البيانات عن طريق إضافة مزيج‬
‫من محتويات سجل‪ BX‬او ‪ BP‬ومحتوى سجل الفهرسة ‪ SI‬او ‪ DI‬مع االزاحة (‪. )Displacement‬‬
‫ويسمى العنوان الناتج بالعنوان الفعال ‪ (EA) Effective Address‬او يسمى العنوان الفيزيائي‬
‫‪ Physical Address‬ويتكون من ‪. 20 bit‬‬
‫‪ : SI‬هو اختصار لـ ‪ Source Index‬وهو سجل يتكون من ‪ 16‬بت ‪ ,‬ويعتبر من سجالت فهرسة‬
‫المصدر ويتعامل مع مقطع الذاكرة ‪ , DS‬ويتعامل مع العنونة الغير المباشرة‬
‫(‪.)Indirect addressing‬‬

‫‪ : DI‬هو اختصار لـ ‪ Data Index‬وهو سجل يتكون من ‪ 16‬بت ويعتبر من سجالت فهرسة البيانات‬
‫ويتعامل مع مقطع الذاكرة ‪ ,DS‬ويتعامل مع العنونة الغير المباشرة (‪.)Indirect addressing‬‬

‫‪ : BP‬هو اختصار لـ ‪ Base Pointer‬وهو سجل يتكون من ‪ 16‬بت ‪ ,‬ويعتبر من سجالت التـاشير‬
‫القاعدة ويتعامل مع مقطع الذاكرة ‪ , SS‬ويتعامل مع العنونة الغير المباشرة‪.‬‬

‫‪ : SP‬هو اختصار لـ ‪ Stack Pointer‬وهو سجل يتكون من ‪ 16‬بت ‪ ,‬ويعتبر من سجالت التـاشيرعلى‬
‫المكدسة ويتعامل مع مقطع الذاكرة ‪ , SS‬ويتعامل ايضا مع االمر ‪ push‬واالمر ‪ pop‬داخل‬
‫مقطع المكدسة (‪ )Stack Segment‬وهذا السجل اليتعامل مع العنونة الغير مباشرة‪.‬‬

‫‪3‬‬
‫‪Microprocessors‬‬

‫‪ Segment Memory Registers:‬‬

‫سجالت مقاطع الذاكرة تتكون من ‪ 4‬مقاطع داخل الـ ‪ RAM‬وهي ‪ CS,DS,SS,ES‬وكل مقطع يتكون‬
‫من ‪ 64 KB‬حيث تبدا من العنوان ( ‪ )0000‬وتنتهي بالعنوان (‪.)FFFF‬‬
‫وكل ‪ segment‬له مؤشر خاص به يسمى‪ , pointer‬فمثال المقطع ‪ CS‬يتعامل مع المؤشر الخاص به‬
‫وهو الـ ‪ IP‬الذي يمثل االزاحة المتحركة (‪ )displacement‬خالل المقطع ‪ CS‬وتكتب بالصيغة المنطقية‬
‫)‪ CS:IP ) Logical form‬وهذا يسمى العنوان المنطقي( ‪ (Logical Address‬حيث يتمثل بالشكل‬
‫(‪ .)Segment: Offset‬بينما الـمقطع ‪ DS‬يتعامل مع الـ )‪ )SI,DI,BX pointers‬والمقطع ‪ES‬‬
‫يتعامل مع الـ (‪ ) SI,DI pointers‬واخيرا المقطع ‪ SS‬يتعامل مع الـ )‪. ( BP,SP pointers‬‬

‫وادناه جدول يوضح انواع مقاطع السجالت (‪: )Segment Register‬‬

‫‪Register Full Name‬‬

‫‪CS‬‬ ‫‪Code Segment Register‬‬

‫‪DS‬‬ ‫‪Data Segment Register‬‬

‫‪SS‬‬ ‫‪Stack Segment Register‬‬

‫‪ES‬‬ ‫‪Extra Segment Register‬‬

‫‪4‬‬
‫‪Microprocessors‬‬

‫‪:(CS) Code Segment Register ‬إنه سجل ‪ 16‬بت يحتوي على عنوان البداية لمقطع ‪.64kB‬‬
‫يستخدم المعالج مقطع ‪ CS‬لجميع عمليات الوصول إلى االيعازات المشار إليها بواسطة سجل مؤشر‬
‫التعليمات)‪ . (IP‬مقطع الكود يحمل رموز تعليمات وايعازات البرنامج الذي ينفذ‪.‬‬

‫‪: (SS) Stack Segment Register ‬هو سجل يتكون من ‪ 16‬بت وحجم مقطع المكدسة ‪.64 kB‬‬
‫بشكل افتراضي ‪ ،‬يفترض المعالج أن كافة البيانات المشار إليها بواسطة سجالت مؤشر المكدس )‪(SP‬‬
‫والمؤشر األساسي )‪ (BP‬موجودة في مقطع المكدسة‪ .‬يمكن تغيير سجل ‪ SS‬مباشرة باستخدام تعليمات‬
‫وايعازات ‪ PUSH‬وكذلك ايعازات ‪ . POP‬يتم استخدام مقطع المكدس لتخزين عناوين‬
‫المقاطعة(‪ )Interrupt‬وعناوين البرامج الفرعية)‪. (Sub-programs‬‬

‫‪: (DS) Data Segment Register ‬إنه عبارة عن سجل ‪ 16‬بت وحجم مقطع البيانات في الذاكرة‬
‫هو ‪ .64 KB‬يتعامل مقطع البيانات مع احد سجالت االغراض العامة وهو ‪ BX‬وكذلك سجل الفهرسة‬
‫)‪ . )DI ،SI‬مقطع البيانات يخزن البيانات التابعة للبرنامج ‪.‬‬
‫‪: (ES) Extra Segment Register ‬هو سجل ‪ 16‬بت يحتوي على عنوان مقطع ‪، 64 KB‬‬
‫عادة ً يستخدم مع بيانات البرنامج‪ .‬بشكل افتراضي ‪ ،‬يفترض المعالج أن سجل ‪ DI‬يشير إلى مقطع ‪ES‬‬
‫في ايعازات السلسلة‪ .‬من الممكن تغيير المقاطع االفتراضية التي تستخدمها السجالت العامة وسجالت‬
‫الفهرس عن طريق وضع بادئة امام مقطع الذاكرة مثال ‪ CS:‬أو ‪ SS:‬أو ‪ DS:‬أو‪. ES:‬‬
‫الشريحة اإلضافية (‪ )ES‬هي شريحة بيانات إضافية (تُستخدم غالبًا للبيانات المشتركة)‪.‬‬

‫تتم معالجة كل مقطع من هذه المقاطع بواسطة عنوان مخزن في سجالت المقاطع المقابلة‪( CS :‬مقطع‬
‫شفرة) و ‪( SS‬مقطع مكدس) و ‪( DS‬مقطع بيانات) و ‪( ES‬مقطع إضافي)‪ .‬تحتوي هذه السجالت على‬
‫نظرا ألن سجالت المقطع ال يمكنها تخزين‬
‫عنوان أساسي ‪ 16‬بت يشير إلى احد بايتات مقطع الذاكرة‪ً .‬‬
‫‪ 20‬بتًا ‪ ،‬فإنها تخزن فقط ‪ 16‬بت‪ .‬لذلك تقوم وحدة ‪ BIU‬بحل المشكلة من خالل إلحاق أربعة أصفار‬
‫من جهة اليمين بالبتات ذات الترتيب المنخفض ‪ low bit significant‬في سجل المقطع من خالل‬

‫‪5‬‬
‫‪Microprocessors‬‬

‫ضرب المقطع ‪ ,*10‬وهذا يسمى بالعنوان الفيزيائي ‪ Physical Address‬الذي يصل الى اي موقع في‬
‫الذاكرة ‪.RAM‬‬

‫‪Physical Address = Base Address of Segment * 10 + Offset‬‬

‫‪( Flag Register ‬سجل االعالم)‪ :‬سجل يتكون من ‪ 16 bit‬وهو موجود داخل وحدة التنفيذ‬
‫ضا بـسجل الحالة‬
‫‪ execution unit‬التي تقع داخل الـ‪ . processor 8086‬سجل االعالم يسمى أي ً‬
‫‪ (PSW) Program Status Word‬وهناك تسعة أعالم حالة وسبعة بتات تظل غير مستخدمة وغير‬
‫نشطة‪.‬‬
‫الغرض من سجل الـ ‪ FLAGS‬هو ارسال تقرير إلى المعالج يوضح حالة الناتج من حيث هل حدث‬
‫استعارة من رقم اخر او تحميل من البت االخير وهل الرقم سالب او موجب ‪ .‬وهناك نوعان من األعالم‬
‫‪,‬أعالم الحالة وأعالم التحكم تعكس حالة ‪ FLAGS‬نتيجة اخرعملية حسابية او منطقية نفذها المعالج‪.‬‬

‫)‪(Internal Registers in 8086 Processor‬‬

‫‪6‬‬
Microprocessors

‫ والسجالت التي تتعامل‬RAM ‫ داخل الـ‬Segment register ‫والمخطط ادناه يمثل مقاطع الذاكرة‬
.‫معها‬

DI

SI

)Blok diagram of Segment Registers & Pointers in 8086)

7
Microprocessors

(Physical Memory in 8086 Processor)

You might also like