البرمجة بلغة التجميع اسمبلي..
في التدوينات الماضية بعض تاريخ عائلات المعالجات CPU – computer interface ثم تحدثنا عن معالجات 4CISC و معالجات RISC وذكرنا الفرق بين معالجات 4CISC و معالجات RISC ومبدأ المعالجة التواردية 
هذا روابط التدوينا السابقة 
الدرس الثاني معالجات 4CISC و معالجات RISC - computer interface
الدرس الثالث المعالجات التواردية pipelining 
الدرس الخامس المتحكمات الصغرية Microcontroller
الدرس السابع البنية الداخلية للمعالج  8088/ 8086
الدرس الثامن السجلات الداخلية للمعالج 8088/ 8086
الدرس التاسع تنظيم ذاكرة المعالج 8086
الدرس العاشر انماط العنونة addressing modes
بعد ان وصلنا الى درس
انماط العنونة ننتقل البرمجة بلغة التجميع اسمبلي وسنتعلم كيفية كتابة برامج بلغة تجميع المعالج  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 .
نلتقي في الدرس القادم 



إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر