البرمجة بلغة التجميع assembly language الدرس الحادي عشر البرمجة بلغة التجميع assembly language الدرس الحادي عشر - اقرا معي وتعلم على الانترنت

البرمجة بلغة التجميع assembly language الدرس الحادي عشر


البرمجة بلغة التجميع اسمبلي..
في التدوينات الماضية بعض تاريخ عائلات المعالجات CPU – computer interface ثم تحدثنا عن معالجات 4CISC و معالجات RISC وذكرنا الفرق بين معالجات 4CISC و معالجات RISC ومبدأ المعالجة التواردية 
هذا روابط التدوينا السابقة 

بعد ان وصلنا الى درس انماط العنونة ننتقل البرمجة بلغة التجميع اسمبلي وسنتعلم كيفية كتابة برامج بلغة تجميع المعالج  8088/8086  وتنفيذها على الحاسوب الشخصي. وسنستخدم، من أجل ذلك، برنامج المجمِّع (المجمع هو برنامج مهمته تحويل البرامجِ المكتوبةِ بلغةِ التجميع، التي  يفهمها الإنسان، إلى لغةِ آلةٍ قابلةٍ للتنفيذ. ) من شركة مِكروسوفت assembler MASM   لترجمة البرامج المكتوبة بلغة التجميع وتحويلها إلى ملفات تنفيذية.


لإنشاء ملف تنفيذي انطلاقًا من برنامج مكتوب بلغة التجميع يجب علينا تنفيذ الخطوات الثلاث
التالية:
1-      كتابة برنامج بلغة التجميع باستخدام محرر نصوص مناسب ومن ثُم تخزينه باللاحقة asm وليكن اسم الملف الناتج هو .Myfile.asm
2-      تحويل )ترجمة)الملف  Myfile.asm  إلى لغة الآلة باستخدام برنامج المجّمع MASM او برنامج مجمع assembler آخر مناسب . يولد برنامج المجمع الملف Myfile.obj ، ويُجري في هذه المرحلة أيضًا اكتشاف الأخطاء النحوية الموجودة في الملف .Myfile.asm
3-      استخدام برنامج رابط LINKER (وهو برنامجٌ يَربطُ نَسِيقَاتٍ مُصرَّفةً compiled modules وملفاتِ معطياتٍ لإنشاء برنامجٍ تنفيذي. قد يَكون للرابط وظائفُ أخرى أيضاً آإنشاء المكتبات) .
لتحويل الملف Myfile.obj مع ملفات أخرى (اذا كان البرنامج  مُوزعًا على عدة ملفات) إلى الملف التنفيذي Myfile.exe  أو .Myfile.com

كما يمكننا تَفحص عمل البرنامج باستخدام برنامج مُنقِّح debugger (الديبجر هو برنامج مصمم للمساعدة في تنقيح برنامجٍ آخر، بحيث يسمح للمبرمج بتنفيذ برنامجه خطوًة فخطوة، وتفحصِ معطيات البرنامج، ومراقبةِ بعض الشروط كتلك المتعلقة بقيم المتغيرات.) مثل البرنامج CODEVIEW الذي هو جزء من حزمة برمجيات MASM .
تبين الصورة التالية الخطوات الثلاث السابقة مع اسم البرنامج المستخدم في كل مرحلة وكذلك مُدخل و مُخرج كل مرحلة.

assembly language بنية برنامج اسمبلي




بنية تعليمات المعالج 8086 8088/
يتألف برنامج مكتوب بلغة التجميع من مجموعة من العبارات statements يمكن أن تتضمن العبارة إحدى تعليمات المعالج أو  مُوجه directive لبرنامج المجمع.
بنية تعليمة الاسمبلي assembly

يبين السطر التالي مثا ً لا على عبارة نموذجية يمكن أن نجدها في برنامج بلغة التجميع:
START: MOV AX, BX ; copy BX into AX
يمكن أن تتضمن العبارة بعض أو كل الحقول التالية:
Label ...(لم استطيع وضع مصطلح عربي مناسب ولكن التعريف قد يساعدك في فهمه )..
عبارة عن مُعرف يوضع قبل التعليمة، يمكن استخدامها مثلا في تعليمات القفز كعنوان رمزي symbolic address للعنوان التي ستقفز إليه التعليمة عوضًا عن العنوان الفيزيائي لها.
يعني تستطيع ان تقول عنه انه عبارة عن لقب ....
مثال: تقفز التعليمة JMP في البرنامج التالي، إلى الموقع أو العنوان ذي الـ Label START وفية  التعليمة :MOV AL, 0h
         JMP START
         ….
START: MOV AL, 0h;

تعليمة بلغة التجميع: مثل MOV و ADD
معاملات او متغيرات التعليمة:
يمكن أن تحتاج التعليمة إلى معامل أو اثنين، كما يمكن أن يكون المعامل مُضمنًا في التعليمة نفسها، أو لا تتضمن التعليمة أي معامل. في حال تضمنت التعليمة أكثر من معامل يجري الفصل بينهم بفاصلة (,).
مثال: لا تحتاج التعليمة NOP  إلى أي معامل، بينما يكون المعامل في التعليمة  CLC  مُضمناً في التعليمة نفسها. تحتاج التعليمة  INC AL  إلى معامل واحد، أما التعليمة  MOV CX, AX  فتحتاج إلى معاملين.  ...ملاحظة (NOP   هذه التعليمة لا تؤثر أي عملية ولا تؤثر على حالة الرايات)
تعليق:
كل ما يكتب بعد الفاصلة المنقوطة (;) هو تعليق comment يهمله المجمع أثناء تحويله برنامج بلغة المجمع إلى لغة الآلة.
بادئة :
يمكن أن تتضمن بعض التعليمات بادئة prefix قبل التعليمة مثل البادئة REP .


نلتقي في الدرس القادم 


شارك الموضوع
تعليقات
محتوى قد يهمك

.