Navigation

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

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




البرمجة بلغة التجميع اسمبلي..

في التدوينات الماضية بعض تاريخ عائلات المعالجات 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 .
تبين الصورة التالية الخطوات الثلاث السابقة مع اسم البرنامج المستخدم في كل مرحلة وكذلك مُدخل ومُخرج كل مرحلة.





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




يبين السطر التالي مثا ً لا على عبارة نموذجية يمكن أن نجدها في برنامج بلغة التجميع:
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 .




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

مشاركة

أضف تعليق:

0 comments: