تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer -...

21

Click here to load reader

Transcript of تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer -...

Page 1: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

الفصل التاسعتنظيم الذاكرة

Introduction مقدمة 9-1 قسمان أساسيان في الذاكرة هما , ذاكرةMicrochip يوجد في شرائح متحكمات

(bus( ولكل قسم ممر )data mem( و ذاكرة المعطيات )program memالبرنامج ) خاص به , لذلك من الممكن الوصول إليهما معا خالل نفس دورة التعليمة وهذا

( Harvard architecture)ما تعرفنا عليه في بنية هارفارد إن ذاكرة المعطيات يمكن تقسيمها إلى :

(general purpose RAM ذات أغراض عامة ) RAMذاكرة .1SFRS(Special Function Registers)مسجالت الوظائف الخاصة .2

( وهي ما سوفCOREسجالت إما أن تتحكم بعمل نواة المتحكم )موهذه ال ( والتي سيتمperipheralsنناقشه في هذا الفصل أو أن تتحكم بعمل المحيطيات )

مناقشته في الفصول القادمة المتعلقة بكل صنف من هذه المحيطيات . Program Memory Organization تنظيم ذاكرة البرنامج9-2

PC Program Counter عداد البرنامج 9-2-1 وبالتالي يستطيع عنونة ذاكرة ذات عدد من المواقع قدرهbits 13 هو عداد ذو

2¹³=8.192=8k words 14 حيث أن طول كلمة البرنامج كما أشرنا سابقا هو bits.

ولما كانت جميع التعليمات هي أحادية الكلمة فإن عدد التعليمات المتاحة لنا في تعليمة.8192برنامج المتحكم هو من قسمين : PCيتألف عداد البرنامج

) وهو مسجل قابل للقراءة منه والكتابة فيه PCLقسم سفلي هو المسجل.1readable\ writable)

وال يمكن القراءة منه أو الكتابة فيه مباشرةPCHقسم علوي هو المسجل .2 الذي يمكن الوصول إليهPCLATHإنما يتم تحديثه دائما من خالل المسجل

قراءة أو كتابة. .PC( الحاالت األربع الممكنة للتعامل مع عداد البرنامج 1-9نبين في الشكل )

118

Page 2: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

في جميع الحاالت الممكنةPC( تحميل المسجل 1-9 )الشكل

تقسيم ذاكرة البرنامج والمخطط البنيوي لها 9-2-2 ويبين الجدول2K*14تقسم ذاكرة البرنامج إلى أربع صفحات كل صفحة بسعة

مجال عنونة كل صفحة.9-1 بواسطة تغيير المسجلPC (11:12)يتم االنتقال بين هذه الصفحات بتغيير الخانتين

PCLATH وهو المسجل ماسك القسم العلوي للعداد PC(Program Counter Latch High). وهذا المسجل هو أحد مسجالت الوظائف الخاصة

119

Page 3: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

PC (12-11)مجال العنونةPage

00011011

0000-07FF0800-0FFF1000-1FFF1800-1FFF

Page0 Page1

Page2Page3

صفحات ذاكرة البرنامج 1-9 الجدول سينتقلPCعند تنفيذ تعليمات البرنامج ونهاية إحدى صفحات البرنامج فإن العداد

آليا إلى الصفحة التالية بدون أي تدخل من المستخدم. فإن الوصول إلى موقعk word 8ومن أجل شرائح ذات ذاكرة برنامج أقل من

ذاكري خارج مجال العنوان الفيزيائي المسموح سيسبب عملية التفاف )wraparound4 ( والتي تعني ) من أجل شريحة ذات ذاكرة برنامج بسعةk word

, أما من أجل الشرائح ذات ذاكرة7ff يعنون فعليا 17ff( أن الوصول إلى العنوان (.paging ال نحتاج إلى عملية تصفح لذاكرة البرنامج )2k wordبرنامج أقل من

المخطط البنيوي لذاكرة البرنامج وكيف يتم التعامل بين 2-9نبين في الشكل عداد البرنامج وكل من المكدس وصفحات ذاكرة البرنامج .

Reset Vector شعاع التصفير 9-2-3 ( الشريحة في جميع المتحكمات بتحميل عداد البرنامجresetتقوم عملية تصفير)

PC 0000 بالقيمةh( ويدعى هذا العنوان عنوان شعاع التصفير reset vector address,) وهو العنوان الذي سينتقل إليه التنفيذ عند حدوث عملية تصفير للشريحة.

مماPCLATH: إن أي عملية تصفير ستؤدي إلى مسح محتويات المسجل مالحظة أو تعليمة استدعاءGo To( )من خالل تعليمة branch)يعني أن أي عملية تفريع للتنفيذ

Call ستتم في الصفحة )page 0 نفسها إال إذا تم تغيير PCLATH قبل هذه التعليمة . Interrupt Vector شعاع المقاطعة 9-2-4

سوف يحمل مباشرةPC فإن عداد البرامج (interruptعند حدوث مقاطعة ما ) interrupt vector ويدعى هذا العنوان بعنوان شعاع المقاطعة )0004hبالقيمة address ومن هذا الشعاع سيتم االنتقال إلى روتين خدمة المقاطعة )

ISR(interrupt service routine) علما أنه قبل تغيير قيمة.PCإلى العنوان المفروض إلىPCLATH فإنه يجب تعديل محتويات المسجل ISRاالنتقال إليه لتنفيذ الروتين

(. ISRالبرنامجالقيمة التي توافق العنوان المطلوب االنتقال إليه )بداية قبل التعديلPCLATH ويجب االنتباه هنا إلى ضرورة تخزين محتويات المسجل

عند االنتهاء منه والرغبة فيISRالسابق حتى يتسنى لنا استرجاعها في برنامج العودة إلى التعليمة التي سبقتها المقاطعة.

120

Page 4: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

المخطط البنيوي لذاكرة البرنامج ( 2-9) الشكل :ال تحتوي جميع الشرائح كامل حيز الذاكرة.1مالحظة:إن معايرة المعلومات يمكن أن تبرمج في موقع ذاكرة البرنامج. 2مالحظة

Calibration Information معايرة المعلومات 9-2-5 إن بعض الشرائح تمتلك ميزة معايرة المعلومات المخزنة في ذاكرة البرنامج

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

المعايرة هذه نموذجيا في نهاية البرنامج. وتنتج هذه العملية بشكل مشابه لتعليمةRETLW . ( تكتب قيم المعايرة WINDOWED DEVICE من أجل الشرائح ذات النوافذ ) : مالحظة

( مما يسمح باستعادة هذه القيم عندما يتم إعادة برمجةERASINGقبل إنجاز المسح )هذه الشريحة.

STACKالمكدس 9-2-6 ( منcombination هو عبارة عن مجموعة )Microchipإن المكدس في متحكمات

(interruptsثمانية مستويات مما يسمح بحدوث عدد من المقاطعات )121

Page 5: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

( حتى الثمانية وباختصار فإن المكدس يحمل عنوان العودةcallsواالستدعاءات )إلى البرنامج الرئيسي )المستدعي( .

وحيث أن المكدس يستخدم لتخزين قيم عداد البرنامج فكل مستوى من bit 14 وبما أن عرض الموقع الذاكري للمكدس ليس bit 13مستوياته هو بعرض

فالمكدس ليس جزءا من ذاكرة البرنامج أو ذاكرة المعطيات بلوبالتالي8bit أو هو مستقل عنهما .

PC قيمة push لبرنامج فرعي ما فإنه يتم دفع callعند تنفيذ تعليمة االستدعاء التي تعنون التعليمة التالية لتعليمة االستدعاء إلى المكدس ونفس األمر يحدث

من المكدس وذلك عندPC. ويتم سحب قيمة interruptionعند وقوع مقاطعة ما . ويجب مالحظة أن المسجلRETURN, RETFE, RETLWتنفيذ إحدى التعليمات

PCLATH ال يتم تعديله سواء عند الدفع PUSH إلى المكدس أو عند السحب POP منه.

عند امتالء المكدس بثماني قيم عودة لعداد البرنامج فإن عملية الدفع التاسعة فوق القيمة األولى وعملية الدفع العاشرة سوف تخزنPCسوف تخزن قيمة

فوق القيمة الثانية وهكذا وبالتالي فإن المكدس هو محطة تخزين دائرية . ( كيفية إنجاز هذا التخزين الدائري.3-9)يبين الشكل

- ال يوجد أعالم تدل على طفحان المكدس . : مالحظة: بل تتم تلقائيا من خالل تنفيذ التعليماتPOP, PUSH - ال يوجد تعليمات

PUSH: Call, Any Interrupt POP: RETURN, RETLW, retfie

STACK

_________ Top of STACK

( 2-9) الشكل Programالبرنامج تقسيم ذاكرة 9-2-7

Memory Paging خانة أي يمكنها تفريغ البرنامج11 مجال عنونة بعرضCall, Go toتمتلك تعليمات

.2kضمن مجال حتى لذا حتى2kإال أن بعض الشرائح تكون فيها ذاكرة البرنامج ذات سعة أكبر من

عنونة كامل المجال الذاكري المحجوز لذاكرة CALL,GO TOيتسنى لتعليمتي البرنامج يجب أن يكون هناك خانتين لتحديد صفحة ذاكرة البرنامج .

كما هو مبينPCLATH(4:3) الخانتينpagingيستخدم لعملية تحديد ذاكرة البرنامج ( والتي تبرمج الختيار صفحة ذاكرة البرنامج الهدف.1-9)في الجدول

BIT 13 تعليمة برنامج عودة ما فإن كامل الخانات الثالث عشرة تنفيذعندما يتم من المكدس لذا ال نحتاج إلى تعليماتpoped سوف تسحب PCلعداد البرنامج

عند العودة من برنامج فرعي أو من روتين خدمة PCLATH(4:3)برمجة للخانتين .ISRمقاطعة

أيPaging وما دون يتم تجاهل خانتي التصفح2K*14في الشرائح ذات ذاكرة البرنامج :- مالحظةPCLATH < 4:3>.حيث تستخدمان للوصول إلى ذاكرة برنامج فيها أكثر من صفحة

122

Push1 Push9Push2 Push10

Push3 Push4 Push5 Push6 Push7 Push8

Page 6: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

- ويمكن استخدام هاتين الخانتين حينئذ كخانتي قراءة \ كتابة ذات أغراض عامة أال أن ذلك الينصح به.

التي تستخدم للوصول<PCLATH<4 تتجاهل الخانة 4K,2K - إن الشرائح ذات ذاكرة برنامج .Page2, Page3الصفحات إلى

page 0من الصفحة page 1 استدعاء برنامج فعلي واقع في مثال نالحظ أن محتوياتPCLATHتخزن ويعاد استعادتها )افتراضيا( بين بداية

.ISRونهاية البرنامج الفرعي أو روتين خدمة المقاطعة ORG *500

BSF PCLATH/3/ (800FFF) 1 اختيار الصفحة CALL SUB1-P1 استدعاء البرنامج الفرعي

ORG 0*900 /SUB1 البرنامج الفرعي المستدعى

RETURN Page 0 عودة إلى البرنامج المستدعى في الصفحة

Data Memory Organization تنظيم ذاكرة المعطيات 9-3 تمهيد 9-3-1

تتألف ذاكرة المعطيات من حيزين ذاكريين : SFRs ( Special Function Registers)حيز مسجالت الوظائف الخاصة .1

من خاللoperation تحكم عمليات الشريحة SFRsوهذه المسجالت أو من خالل التحكمcoreالتحكم بوظائف نواة المتحكم الداخلية

peripheralsبالوظائف المعدة للمحيطيات GPRs ( General Purpose Registers)حيز مسجالت األغراض العامة .2

الذي يستخدم لتخزين المعطيات وفق تعريف المستخدم وتلبيةإلستراتيجيته البرمجية .

ويتم االنتقال بين البنوك<Banking>عملية تقسيم ذاكرة المعطيات تسمى .<status<7:5المتاحة بواسطة خانات برمجية خاصة بذلك هي الخانات

يمكن الوصول إلى أي موقع ذاكري في ذاكرة المعطيات بواسطة العنونة ( أو بواسطة( RP0,RP1) المسماةstatus (6:5)المباشرة )التي تستخدم الخانات

المسمى مسجل اختيار الملف (SFRالعنونة غير المباشرة )باستخدام المسجل التي تستخدمIRP(indirect register pointer)ويستخدم مع هذا المسجل الخانة

وسنقوم بشرحBANK2/BANK3 أو إلى BANK0/BANK1للوصول إما إلى مفصل لكال أسلوبي العنونة في الفقرات القادمة.

special function registersمسجالت األغراض العامة 9-3-2 والوحداتCPUتستخدم هذه السجالت من قبل وحدة المعالجة المركزية

المحيطية وذلك من أجل التحكم بالوظائف إلنجاز العمليات المطلوبة وتعمل هذه(.static RAM )السجالت بتقنية

إلى قسمين:SFRsتقسم مسجالت الوظائف الخاصة (.COREمسجالت تتحكم بوظائف النواة ).1(.PERIPHERALSمسجالت تتحكم بالمحيطات ).2

وفي هذا الفصل سندرس بالتفصيل المسجالت المتعلقة بالنواة أما الصنف اآلخرفسيدرس بشكل تتابعي مع كل بحث قادم.

123

Page 7: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

POR يتم عودتها إلى حالة بدائية بعد كل عملية تصفير SFRsبعض المسجالت )تصفير عند وصل التغذية( أو أي عملية تصفير , وبعض المسجالت األخرى يتم

(unaffectedتصفيرها و أخرى ال تتأثر) يمكن الوصول إلى هذه المسجالت بشكل مباشر أو غير مباشر بواسطة

.FSRالمسجل .GPR بعض مسجالت SFRs: يمكن أن تحتوي منطقة مسجالت مالحظة

<Banking االنتقال بين بنوك ذاكرة المعطيات >9-3-3 تقسم ذاكرة المعطيات إلى أربعة أقسام كل منها نسميه بنك وكل بنك يحتوي

الحيزSFRs حيث تشغل مسجالت الوظائف الخاصة 128 bites[7f→0على ].GPRsالسفلي منه وفي الحيز العلوي منه مسجالت األغراض العامة

لها صورbank0( الموجودة في البنك high useبعض المسجالت عالية االستخدام ) وتسريع عمليةcodeفي البنوك األخرى وذلك من أجل االختصار في الشيفرة

الوصول . يتم االنتقال بين هذه البنوك األربعة بطريقتين وذلك حسب نوع العنونة المختار ,

أما في حالةRPO, RP1ففي حالة العنونة المباشرة يستخدم لذلك الخانتين وهذه الخانات موجودة في مسجلIRPالعنونة غير المباشرة تستخدم الخانة

( القادم شرحه في فقرات الحقة .status regالحالة ) قيم هذه الخانات والبنوك المختارة المقابلة بالنسبة لنمطي2-9يبين الجدول

العنونة المباشرة وغير المباشرة .Indirect IRP Direct PR1: PR0 Bank

0

1

00 01 10 11

0 1 2 3

124

Page 8: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

2-9 الجدول إن وجود أربعة بنوك في ذاكرة المعطيات ليس متوفرا في جميع العائالت فبعض

تحتوي فقط على اثنين من هذه البنوك األربعة كما فيPIC16C71Xالعائالت مثل الذي يمثل مخطط مسجالت ذاكرة المعطيات في المتحكم( 5-9)الشكل

PIC16C71.

-9 )الشكل

5) مخطط

مسجالت ذاكرة

المعطيات في : مالحظة

فقط في العنونة المباشرة وال نحتاج إلى الخانةRPOحال وجود بنكين فقط نحتاج إلى الخانة IRP"0 في العنونة غير المباشرة حيث ستعتبر قيمتها."

ملخصا حول جميع المسجالت ذات الوظائف الخاصة مع 3-9يظهر في الجدول .PIC16C71عناوينها وقيمها عند أحوال مختلفة من التصفير وذلك في المتحكم

Indirect (IRP )

Direct RP1:RP0

Accessed Bank

0 00 0 01 1

1 10 2 11 3

ملخص المسجالت ذات الوظائف الخاصة3-9 الجدول مسجل الحالة ومسجل االختيار 9-3-5

(Status Registerأوال : مسجل الحالة ) باإلضافة إلىALU وهو من أهم المسجالت يحتوي على أعالم الحالة للوحدة

أعالم التصفير وخانات اختيار بنوك المعطيات , ويتم تعديل محتويات مسجل

125

Page 9: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

الحالة بعد تعليمات محددة , وهناك بعض التعليمات التي ال تغير من محتويات هذا Status وينصح عند فحص خانات المسجل SWAPF, DECFSZ, NOPالمسجل مثل

حيث أن مثل هذه التعليمات ال تؤثر علىPTEFC,PTFSSاستخدام التعليمات استخدام التعليماتStatusمحتويات مسجل الحالة وبإمكانك للكتابة في المسجل

BCF, BSF, MOVW F

R/W-XR/W-XR/W-XR-1R-1R/W-0R/W-0R/W-0CDCZPDTORP0RP1IRP

Bit1 Bit0 :دالئل الرموز

R تعني إن الخانة قابلة للقراءة = readable W تعني أن الخانة قابلة لكتابة= writable X قيمة غير منتهية= U خانات غير مستخدمة= unimplement0 تقرأ n القيمة عند حدوث التصفير =- POR

: خانة اختيار بنك المعطيات )عند العنونة غير المباشرة (IRPالخانة bank 0,1 =اختبار 0BANK 2,3= اختبار 1

: خانات اختيار بنك المعطيات )العنونة المباشرة (RP1:RP0الخانتين 00= bank0 (00-7fh) 01=bank1 (80-ffh) 10=bank2 (100-17fh 11=bank3 (180-1ffh) WDT ( Time-out) : انقضاء زمن تأخير المؤقت T0الخانة

WDT= انتهاء زمن تأخير مؤقت المراقبة 0 SLLEP وبعد تعليمة CLRWDT وبعد تعليمة power up= بعد اإلقالع 1

power-down bit : خانة الطاقة المنخفضة P0الخانة SLEEP= بعد تنفيذ التعليمة 0 LLROWDT وبعد التعليمة power up= بعد اإلقالع 1

: مالحظة سيتم مناقشتهما في الفصل الثالث من هذا الباب لذلك ال عليناPD,T0الخانتان

. أن ننشغل بهما في هذا الموضع بشمل كبير:علم الصفرية Zالخانة = نتيجة العليمة الرياضية أو المنطقية ليست صفرا.0 = نتيجة العملية الرياضية أو المنطقية هي صفر 1 : علم نصف الحمل /االستعارة DCالخانة = ال يوجد حمل /استعارة من/إلى الخانة الرابعة )في النيبل السفلي(0 = حدوث حمل /استعارة من /إلى الخانة الرابعة )في النيبل السفلي(1 : علم الحمل/ االستعارة Cالخانة = عدم حدوث حمل /استعارة من/إلى الخانة األكثر أهمية )الثامنة (0 = حدوث حمل /استعارة من/إلى الخانة األكثر أهمية )الثامنة ( 1

يمكن أن يؤخذ إما القيمةC فإن العلم RLF, RRFمن أجل التعليمات : مالحظةLSB أو MSB. حسب التعليمة

( option: مسجل االختيار)ثانيا

126

Page 10: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

B: خانة تمكين االنحياز العلوي للنافذة RBPUالخانة (pull-up=عدم تمكين االنحياز العلوي)1 ( pull-up= تمكين االنحياز)0

RBO: خانة اختيار جبهة المقاطعة على القطب INTEDGالخانة (على القطبrising edge=حدوث المقاطعة عند الجبهة الصاعدة )1

RBO. (على القطبfalling edge=حدوث المقاطعة عند الجبهة الهابطة)0

RBO. TMRO: خانة اختيار مصدر نبضات المؤقت TOCSالخانة

)عداد(RA4/TOCKI=حدوث االنتقال على القطب 1 =نبضات الساعة الخاصة بدورات التعليمة الداخلية 0

RA4:خانة اختيار جبهة زيادة المؤقت على القطب TOSEالخانة RA4/TOCKI=الزيادة عند الجبهة الهابطة على القطب 1 RA4/TOCKI=الزيادة عند الجبهة الصاعدة على القطب 0

( prescaler:خانة تعيين تابعة المقسم)PSAالخانة WDT=تابعة القسم إلى المؤقت 1 TIMER 0=تابعة القسم على المؤقت 0 (prescaler: خانات اختيار نسبة المقسم )PS2:PSOالخانة

نسبة التقسيم الخانات TMROللمؤقت

نسبة التقسيم WDTللمؤقت

PS0 PS1 PS2 0 0 0 1:2 1:1 1 0 0 1:4 1:2 0 1 0 1:8 1:4 1 1 0 1:16 1:8 0 0 1 1:32 1:16 1 0 1 1:64 1:32 0 1 1 1:128 1:64 1 1 1 1:256 1:128

127

PS0 PS1 PS 2PSA TOSE TOCSINTEDGRBPU

Page 11: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

Direct Addressing العنونة المباشرة 9-3-6:6-9 وهي مبينة في الشكل

خانات عنونة حيث7 بايت نحتاج إلى 128الختيار موقع ذاكري )بايت( من أصل وهذه الخانات السبع نحصل عليها من شيفرة التعليمة نفسها والتي128=27أن

تحتوي على عنوان المسجل الهدف من خالل سبع خانات في شيفرة التعليمة من خانة أما الخانات األخرى فهي لتشفير نوع العملية )تحميل- جمع(.14أصل

( العنونة المباشرة6-9 )الشكل من مسجل الحالة واللتانRP1:RP0والختيار البنك الهدف يتم استخدام الخانتين

نجد قيم الخانات9-3 بنوك , وبالعودة إلى الجدول 4=22تستطيعان عنونة RP0:RP1. الموافقة الختيار بنك من البنوك األربعة Indirect Addressingالعنونة غير المباشرة: 9-3-7

يستخدم هذا األسلوب من العنونة عندما يكون عنوان ذاكرة المعطيات متغيرا ( الذاكرية, ونذكر انه عندblocksباستمرار كما في حالة التعامل مع الكتل )

التعامل مع الجداول الذاكرية كنا نقوم بتهيئة مؤشر الذاكرة على قيمة ابتدائية ثم نقوم بتعديل هذه القيمة لمسح مجال محدد من الذاكرة هو طول الكتلة

الذاكرية . هنا كمؤشر علما أن هذا المؤشر هو احد مسجالتFSRيستخدم المجال

الوظائف الخاصة وبالتالي يمكن تعديله أثناء البرنامج,والمسجل الذي عنوانه هو حيث سيتم التعامل مع هذا المسجل عند INDF يشار إليه بالمسجل FSRقيمة

استخدام العنونة غير المباشرة .(كيف تتم عملية العنونة غير المباشرة.7.9نبين في الشكل )

128

Page 12: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

حيث سنالحظ أن البايت الهدف يتم اختياره بواسطة خانات المسجلFSR منIRP و FSR(7)األولى أما البنك الهدف فيتم اختياره بواسطة الخانتين

مسجل الحال

IRP FSR register

00h 11 10 01 00اختيار البنك اختيار الموقع

7

Bank0 bank1 bank2 bank3

العنونة غير المباشرة7-9 الشكل

خالصة في نمطي العنونة :9-3-8 فإننا نحتاج دوما للوصول إلى موقع ما في ذاكرة9-8كما هو مبين في الشكل

.128K=152=29المعطيات إلى تسع خانات الن سعة هذه الذواكر هي وبما أن هذه الذواكر مقسمة إلى أربعة بنوك فإننا نحتاج إلى خانتين للتنقل بين

منRP1:RP0هذه البنوك وهاتان الخانتان هما في أسلوب العنونة المباشرة status من المسجل IRPهما , وفي ألسلوب العنونة غير المباشرة statusالمسجل .FSR(7)والخانة

بايت128اآلن بعد اختيار البنك الهدف نجد بأنه الختبار البايت الهدف من أصل ففي أسلوب العنونة المباشرة يتم الحصول 128=27نحتاج إلى سبع خانات حيث

للتعليمة نفسها وفي حالة العنونةOPcodeعلى هذه الخانات السبع من شيفرة غير المباشرة تخزن هذه الخانات السبع في الخانات السبع األولى من المسجل

.FSR

DATAMemory

129

Page 13: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

RAM طرق الوصول إلى الذاكرة 8-9 الشكل: مالحظة هامة ألجل العنونة غير المباشرة

حيث أن أي تعليمةINDFيمكن أن نستخدم في حالة العنونة غير المباشرة مسجال خاصا تستعمل المسجل

INDF ستؤدي فعليا إلى الوصول إلى المسجل المشار إليه بواسطة المسجل FSR . RAM Initialization مثال

وذلك بتصفيرRAMسوف نبين في هذا المثال كيف تتم عملية تهيئة الذاكرة مسجالت األغراض العامة في هذه الذاكرة والموجودة في البنوك األربعة لهذه

الذاكرة . حيث تم استخدام نمط العنونة غير المباشرة بحيث تم في كل مرة تحميل عنوان

أول مسجل من مسجالت األغراض العامة الموجودة في البنك المختار وإجراء ثم عملية اختبار انتهاء عمليةINDFعملية التصفير الدورية بواسطة المسجل

عند نهاية1 والتي ستصبح FSRتهيئة البنك وذلك إما باختبار الخانة السابعة من .7F=01111111البنك ذات العنوان

CLRF Status /bank الـ اختيار الحالة مسجل تصفير / MOVLW OX20 تحميل أول عنوان من مسجالت األغراض العامة

Bank0-LP CLRF INDFO / FSR المشار إليه بواسطة المسجل GPRتصفير المسجل

/ HNCF FSR التالي لتصفيره GPR تمهيدا الختيار مسجل FSRزيادة BTFSS FSR/7 7F عند العنوان bank0 اختبار انتهاء

GO TO bank0-LP Bank 1- Select

/ MOVLW OXA0تحميل أول عنوان من مسجالت األغراض العامة المراد MOVWF FSR / FSR إلى المؤشر bank1 تصفيرها في

BANK 1-LP CLRF INDFO /FSR المشار إليه بواسطة تصفير المسجل لحق

130

Page 14: تنظيم الذاكرة - Eng.Sadam Khaled AlansiBiomedical Engineer - …sadamkhaled.weebly.com/uploads/5/3/3/9…  · Web view · 2011-09-109-1. مقدمة ... ومن أجل

INCF FSR / FSR زيادة BTFSS status /c (FER=00 /C = 1) اختبار انتهاء ?

GO TO bank 1-LP /bank2 – select

BSF status /IRP/ bank 2/ bank 3اختيار أحد البنكين / MOVLW OX20تحميل أول عنوان من مسجالت األغراض العامة

MOVWF FSR / FSR إلى المؤشر bank2 المراد تصفيرها في الـ Bank 2-LP

CLRF INDF0 / FSR المشار إليه بواسطة GPRتصفير المسجل

INCF FSR زيادة المؤشر BTFSS FSR7 bank 2 ؟ اختبار إنهاء

GO TO bank 2 –LP Bank 3 – select

MOVLW OXAO bank3 اختيار MOVWF FSR

Bank 3 –LP CLRF INDF0 FSR المشار إليه بواسطة GPRتصفير المسجل

INCF FSR زيادة المؤشر BTFSS status/c (fsr=00/C=1) ؟ اختبار إنهاء الـ

GO TO bank 3 –LP

131