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)