لغة التجميع
on- 2017-07-14 22:02:20
- 0
- 967
ترجع نشأة لغة التجميع (Assembly) إلى خمسينيات القرن العشرين، والتي كان لها الفضل في جعل عمليات البرمجة تتم بسهولة ويسر، وتتكون هذه اللغة من مجموعة من التعليمات بحيث كل تعليمة تضم 32 بتاً (خانة) وهذه البتتات تنقسم بدورها إلى أجزاء والتي تعتمد على الأمر الذي يكون في أول 5 بت من كل تعليمة، وكل تعليمة بلغة التجميع تقابلها ترجمة لها في لغة الآلة وذلك حتى تستطيع وحدة المعالجة المركزية CPU فهمها وتنفيذها.
أنواع التعليمات التي تنفذها لغة التجميع :
تتنوع نوعية هذه التعليمات فمنها العمليات الحسابية من طرح وجمع وقسمة وضرب و غيرها ، أو العمليات المنطقية (AND , OR , XOR , NOT) وهي التي تتيح للشخص تنفيذ كود معين بعد التحقق من مجموعة شروط بحيث يجب أن تكون قيمة الشرط صحيحة وتطابق القواعد الخاصة بكل عامل منطقى، أو عمليات الإدخال والإخراج (MOV, ADD, SUB, IN, OUT, CMP).
طريقة نظام لغة التجميع :
من الجدير بالذكر أن البرامج التنفيذية على الحاسوب تنقسم إلى نوعين : برامج التطبيقات (application programs) وبرامج النظام (system programs) ولكل نوع من هذه البرامج استخدامات معينه، فبرامج التطبيقات تتم كتابتها بلغة عالية المستوى (لغة مستقلة عن الآلة) وتكون مخصصة لآداء مهام معينة منها لوائح الجرد ومعالجة المتحولات، أما برامج النظام فتنحصر أهميتها في جعل استخدام الحاسوب أكثر يسر ومنها المترجمات وأنظمة التشغيل.
لغة التجميع هي واحدة من اللغات البرمجية المنخفضة المستوى (low level language) ويقوم المجمّع (Assembler) بتحويلها إلى برنامج تنفيذي، ثم يتحكم بها (hardware) الخاص بالحاسوب من خلال العمليات والأوامر والكلمات الموجودة بداخل المجمّع حيث يقوم بتحويلها إلى لغة الآلة، وذلك لكي تكون جاهزة للتنفيذ من خلال وحدة المعالجة المركزية “CPU” أو المعالجات الدقيقة “Microprocessors” أو المتحكمات الدقيقة “Microcontroller”.
لغة التجميع والسجلات :
تُعتبر السجلات (Registers) بمثابة مصادر تخزينية للغة التجميع، حيث تنقسم هذه السجلات لمساحات مختلفة (18،16،32) بت، والتي تكمن وظيفتها في أداء العمليات المختلفة التي تشتمل على قراءة وكتابة العمليات الحسابية والمنطقية ، كما أنها يُطلق عليها أيضاً اسم المكدّس (stack).
أهمية واستخدامات لغة التجميع :
يتم الإستعانة بلغة التجميع في حالة وصل أجهزة خارجية بالحاسوب والتحكم بها، وذلك لأن هذه الأجهزة لا تستطيع ترجمة وفهم لغة الآلة، وتكون في حاجه إلى برمجة تمكنها من العمل عند مستوى وحدة المعالجة، وتكون هذه هي مهمة لغة التجميع.
هناك أيضاً حالات أخرى استثنائية يتم فيها استخدام لغة التجميع، وهي عند الحصول على نتائج كبيرة جداً أو صغيرة جداً خلال العمليات الحسابية، حيث تقوم لغة التجميع بتصحيح الناتج وذلك لأن هذا النوع من النتائج لا يمكن تخزينه في وحدة المعالجة المركزية.
غالباً ما تُستخدم لغة التجميع في تطبيقات معينة متوسطة الكلفة، والتي تتواجد في العديد من الأنظمة مثل نظام المراقبة التحكم والمراقبة و النظام المتحكم في آلات الغسيل وما إلى ذلك، حيث تقوم لغة التجميع بكتابة البرامج بشفرة خاصة تسمى شفرة التجميع وذلك حتى لا يحجز برنامج شفرة الآلة المترجم أكثر من سعة الذاكرة الصغيرة (ROM) بداخل النظام.
مكونات لغة التجميع :
تنقسم لغة التجميع إلى ثلاثة أقسام رئيسية وهي : أوامر كود التشغيل (opcode)، مقاطع البيانات، وتوجيهات لغة التجميع (Directives) ، ولكل قسم منهم وظيفته الخاصة به، فمثلاً كود التشغيل يمثّل الاسم الرمزي لإحدى التعليمات التنفيذية المكتوبة بلغة الآلة، أما مقاطع البيانات فهي تحمل التعليمات التي تحدد نوعية البرامج المتاحة للبيانات الموجودة ، أما توجيهات لغة التجميع فهي عبارة عن التعليمات التي ينفذها المجمّع أثناء التجميع والتي لا تستطيع وحدة المعالجة المركزية القيام بها في وقت تشغيل البرنامج.
نماذج على استخدام لغة التجميع :
تم استخدام لغة التجميع خلال رحلة أبوللو 11 إلى سطح القمر، حيث قامت مهندسة البرمجيات في ناسا (مارغريت هاملتون) بالإستعانة بلغة التجميع في كتابة الكود البرمجي لهذه الرحلة، وحالياً كثيراً ما يتم استخدام لغة التجميع في كثير من الأشياء وذلك لما توفّره من امكانيات تُسهّل وتختصر الكثير من الأوامر الصعبة والطويلة، فمثلاً من استخداماتها كتابة برامج الألعاب والتطبيقات الأخرى التي تتضمن حسابات رسومية Graphing.