logo

logo

logo

logo

logo

المجمعات

مجمعات

Assemblers - Assembleurs

المجمِّـعـات

 

المجمِّعassembler  هو برنامج يقوم بترجمة البرنامج المصدري التجميعي assembly source program المكتوب بلغة التجميع، والذي يتألف من مجموعة من التعليمات التجميعية، ويشكل ملفاً نصِّياً لايمكن تنفيذه ويملك الامتداد ASM إلى رماز الآلة machine code المكافئ للتعليمات التجميعية والذي يشكل عندئذٍ مايعرف بالبرنامج الهدف object program   الذي يملك الامتداد OBJ، ويحتاج هذا البرنامج الهدف إلى بعض عمليات العنونة الإضافية بوساطة برنامج الربط linker للحصول على البرنامج التنفيذي ذي الامتداد EXE أو COM.

لغة التجميع

يكتب المبرمجون تعليماتهم بلغات مختلفة للبرمجة [ر. لغات البرمجة]، بعضها مفهوم مباشرة من قبل الحاسوب، وبعضها الآخر يحتاج إلى خطوات ترجمة وسيطة. وتستخدم حالياً مئات من لغات البرمجة، يمكن تقسيمها إلى ثلاثة أنواع: لغات الآلة، لغات التجميع، اللغات عالية المستوى. يستطيع الحاسوب أن يفهم مباشرة لغة الآلة الخاصة به التي هي لغته الطبيعية، وهي اللغة المعَّرفة من قبل البنية الصلبة للحاسوب ولها علاقة مباشرة بمجموعة تعليمات المعالج المستخدم، وتتألف لغات الآلة عموماً من مجموعات من الأصفار والواحدات التي تعطي الأوامر للحاسوب وترتبط بالآلة ارتباطاً وثيقاً؛ بمعنى أن لغة آلة ما يمكن أن تستخدم فقط مع نوع محدد فقط من الحواسيب. ومع انتشار الحواسيب تبين بطء عملية البرمجة بلغة الآلة وصعوبتها، وبدلاً من استخدام مجموعات الأصفار والواحدات التي يفهمها الحاسوب مباشرة بدأ المبرمجون باستخدام مصطلحات قريبة من اللغة الإنكليزية للتعبير عن الأوامر المعطاة للحاسوب، وتمثل هذه المصطلحات الأساس التي انطلقت منه لغات التجميع التي ترتبط بالآلة ارتباطاً وثيقاً. ومن ثمّ فإن لكل عائلة معالجات لغة تجميع خاصة بها؛ وذلك لأن تعليمات لغة التجميع مصممة لتتوافق مع تعليمات لغة الآلة لحاسوب معين ومع بنية هذا الحاسوب. إن لغة التجميع هي لغة منخفضة المستوى low- level language لأنها قريبة من لغة الآلة من حيث التركيب والوظيفة، وكل تعليمة بلغة التجميع تقابل تعليمة واحدة بلغة الآلة، وكل تعليمة بإحدى اللغات العالية المستوى مثل باسكال، C++ ..... تترجم إلى مجموعة من التعليمات بلغة الآلة [ر. المترجمات].

تتميز البرامج المكتوبة بلغات التجميع بسرعة تنفيذها وصغر حجم الذاكرة التي تحتاج إليها، والمجمِّع هو برنامج يحول البرنامج المصدري المكتوب بلغة التجميع إلى برنامج هدفي مكتوب بلغة الآلة؛ لذلك فهو مرتبط على نحو وثيق ببنية الآلة مع الأخذ في الحسبان وجود بعض النواحي فيه غير مرتبطة ببنية الآلة. إن أكثر المجمِّعات شهرة بالنسبة إلى عائلة المعالجات إنتل Intel هي: (Microsoft assembler) MASM لشركة ميكروسوفت Microsoft، وآي بي إم IBM ، وتاسم TASM (Borland turbo assembler)، وASM 86 .

وظائف المجمِّع وعمله

ـ تحويل العمليات الرمزية إلى مكافآتها من عمليات الآلة.

ـ تحويل المعاملات الرمزية إلى مكافآتها من عنوانات الآلة.

ـ تشكيل تعليمات الآلة بصيغها المناسبة.

ـ تحويل ثوابت المعطيات المستخدمة في البرنامج المصدري إلى مايكافئها من أصفار 0s وواحدات 1s.

ـ كتابة البرنامج الهدفي وملف الجدولة listing file ذي الامتداد LST الذي يحتوي على البرنامج الهدفي والبرنامج الرصدي وبعض المعلومات الأخرى المفيدة، وملف إسناد الرجوع الأولي cross-reference file  ذي الامتداد CRF للمجمع MASM والامتداد XRF للمجمع TASM، والذي يحتوي على رموز تساعد على إنشاء ملف جدول إسناد الرجوع النهائي cross - reference listing file  ذي الامتداد REF الذي يفيد في الرجوع إلى أماكن استخدام جميع حقول المعطيات واللافتات label والرموز في البرنامج.

يقوم المجمع عموماً بطورين من الإمرار pass خلال معالجة البرنامج المصدري، ويعود السبب الرئيسي في ذلك إلى احتمال وجود الإسناد الأمامي forward reference، وهو مصادفة المجمِّع لتعليمة تستخدم لافتة أو اسم حقل معطيات لم يجد المجمع تعريفها بعد. يقوم المجمع خلال عملية الإمرار الأولى بقراءة البرنامج المصدري كله لبناء جدول يحوي أسماء حقول المعطيات واللافتات المستخدمة ومواقعها النسبية في البرنامج، كما تحدد هذه العملية حجم رماز الآلة الذي سيتم توليده. يتميز المجمع MASM ببدء توليده لرماز الآلة خلال عملية الإمرار الأولى، في حين يقوم المجمِّع TASM بذلك في عملية الإمرار الثانية. بعد الانتهاء من تشكيل جدول الرموز يستطيع المجمِّع معرفة أي لافتة حتى وإن لم يأت تعريفها قبل استخدامها في إحدى التعليمات (يُصادف ذلك مثلاً في تعليمة قفز نحو لافتة أمامية). يستخدم المجمع في عملية الإمرار الثانية جدول الرموز السابقة لتحديد الطول والموقع النسبي لكل تعليمة أو حقل معطيات بغية إكمال رماز الهدف لكل تعليمة. ويشكل بعد ذلك ملفات الهدف object والجدولة listing وإسناد الرجوع الأولي cross-reference.

يُحتاج إلى ملف الجدولة عندما يُفحص رماز الآلة المولدة، ويقوم المجمِّع بعد جدولة البرنامج المصدري بوضع قائمة المقاطع والمجموعات segment and group table التي تبين المقاطع (حيث إن البرنامج بلغة التجميع يتألف من مقطع المعطيات ومقطع التعليمات ومقطع المكدس) ومجموعات المقاطع التي لها النوع نفسه والتي تم تعريفها ضمن البرنامج المصدري. وتتضمن هذه القائمة صفات جميع المقاطع والمجموعات الواردة في البرنامج المصدري، حيث يبين فيها طول كلٍ منها مقدراً بعدد البايتات التي تشغلها ونوع الرصف alignment ونوع الدمج combine ونوع الصنف class الخاص بها. كما يقوم المجمِّع بوضع أصول الرموز symbols table التي توفر أسماء حقول المعطيات الواردة في مقطع المعطيات واللافتات المستعملة في مقطع التعليمات وأسماء الإجرائيات ونوعها وعنوان إزاحتها offset.

يُستخدم ملف إسناد الرجوع الأولي لإنشاء ملف جدول إسناد الرجوع النهائي للافتات وأسماء حقول المعطيات والرموز المستخدمة في البرنامج المصدري، ويلاحظ في هذا الجدول ورود كل ما ذكر حسب الترتيب الأبجدي، وعلى يمينها تظهر أرقام أسطر البرنامج المصدري التي عُرفت واستخدمت فيه، ويشير الرقم الأول إلى رقم السطر الذي عرف فيه العنصر في الملف LST، أما بقية الأرقام على يمينه فتشير إلى مكان استخدامها من قبل التعليمات، ويقوم بعملية إنشاء ملف جدول إسناد الرجوع النهائي أحد البرامج المرفقة مع برامج المجمِّع، وهو برنامج CREF في مجمِّع شركة ميكروسوفت وآي بي إم IBM وبرنامج TCREF في مجمِّع شركة بورلاند Borland.

يستطيع برنامج المجمِّع كشف أخطاء البرمجة المخالفة لقواعد استخدام اللغة بتشخيصه هذه الأخطاء وإرسال الرسائل التحذيرية.

ربط البرنامج

تأتي خطوة ربط البرنامج linking بعد إيجاد الرماز الهدفي للبرنامج بإنجاز العمليات الآتية:

ـ إكمال العنوانات كافة التي ترك المجمِّع أماكنها فارغة في الملف الهدفي، حيث إن المجمِّع لايستطيع وضع عنواناتها الفعلية؛ لأن البرنامج يمكن أن يُحمَّل في أي موقع مناسب في الذاكرة.

ـ ضم البرامج التي تؤلف وحدات مستقلة والتي تم تجميع كل منها على نحو منفصل في برنامج واحد قابل للتنفيذ، ويُحتاج إلى تلك العملية عند دخول أحد برامج اللغة التجميعية في بنية برنامج مكتوب بلغة عالية المستوى، أو عندما يكون برنامج اللغة التجميعية مؤلفاً من برنامجين اثنين على الأقل.

ـ تشكيل البرنامج التنفيذي EXE وتهيئته بالتعليمات اللازمة لتحميله عند تنفيذه.

ـ تشكيل خريطة الربط link map وهو بمنزلة ملف يبين طول كل مقطع وعنوان الإزاحة لبداية ونهاية الخاص به وعنوان أول تعليمة ستنفذ في البرنامج.

من أشهر برامج الربط البرنامج LINK الخاص بشركتي آي بي إم وميكرسوفت والبرنامج TLINK الخاص بشركة بورلاند.

تطبيقات المجمع

يُستخدم المجمع حيث تستخدم لغة التجميع، فمثلاً تستخم لغة التجميع للوصول المباشر إلى البنية الصلبة للحاسوب ونظام التشغيل والمهام التي تحتاج إلى سرعة وفي الأنظمة المضمنة وغير ذلك.

مازن محايري

الموضوعات ذات الصلة:

الحاسوب ـ العنونة في الحواسيب (طرائق ــ) ـ لغات البرمجة ـ المعالج السلمي الفائق ـ المعالج الصغري.

مراجع للاستزادة:

- PETER ABEL, Programming Assembler Language IBM 370 (Prentice Hall; 3rd Edition 1989).

- RAY DUNCAN, Power Programming With Microsoft Macro Assembler (Microsoft Pr; 1991).

- ALTON R. KINDRED, Structured Assembler Language for IBM Microcomputers (Oxford University Press 1991).




التصنيف : التقنيات (التكنولوجية)
النوع : تقانة
المجلد: المجلد السابع عشر
رقم الصفحة ضمن المجلد : 813
مستقل

آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

للحصول على اخبار الموسوعة

عدد الزوار حاليا : 1
الكل : 7851913
اليوم : 130

صبغيات الجنس وتعيينه

صبغيات الجنس وتعيينه   تمتلك إناث الثدييات وذكورها نوعين من الصبغيات: النوع الأول هو أشفاع من الصبغيات الجسمية autosomes، صِبغيَّا كل شفع منها متماثلان، ولاتختلف هذه الصبغيات باختلاف الجنس، والثاني صبغيا الجنس sex chromosomes، وهما متماثلان في الإناث، يطلق على كل منهما اسم X، ومختلفان في الذكور، أحدهما صبغي X، والثاني، الأصغر منه حجماً والمختلف عنه شكلاً، يُسمى الصبغي Y. أما الطيور والفراشات والأسماك فهي على عكس ذلك: XX عند الذكور، و XY عند الإناث. ويحتوي الصبغي X على عدد أكبر من المورثات عما يحتويه الصبغي Y.

المزيد »