الجمعة، 4 يناير 2013

ماهي التطبيقات العملية للغة التجميع assembly language




التطبيقات العملية
غالبا ما يتم استخدام الكود المكتوب بلغة التجميع في نظام ROM عند تحميل النظام (BIOS على نظم PC المتوافقة مع IBM) - كلمة BIOS اختصارا لـ Basic Input Output System-.ويستخدم هذا الكود المكتوب بلغة منخفضة المستوى, مع أشياء أخرى, في تهيئة واختبار العتاد Hardware قبل تحميل نظام التشغيل OS, ويخزن ذلك الكود في الذاكرة من نوع القراءة فقط ROM -اختصار Read Only Memory-. وحالما تم الوصول لمستوى معين من تهيئة الجهاز, يتم الانتقال إلى تنفيذ كود آخر, وغالبا ما يكون مكتوبا بلغة عالية المستوى؛ لكن الكود الذي يتم تشغيله بعد الضغط على زر تشغيل الكمبيوتر Power Button غالبا ما يكون مكتوب بلغة التجميع.ونطبق نفس الشئ على معظم برامج التحميل Boot Loaders.

وتقوم معظم المترجمات Compilers بمعالجة لغات عالية المستوى إلى لغة تجميع أولا قبل الترجمة النهائية, وبذلك تتيح كود التجميع ليتعرض لعمليات التصحيح Debugging والتحسين Optimization.وتوفر لغات البرمجة منخفضة المستوى نسبيا, مثل لغة السي C, بناءا لغويا خاصا Syntax لدمج الكود المكتوب بلغة التجميع مباشرة في كود المصدر الخاص بها.ويمكن للبرامج التي تستخدم مثل هذه التسيهلات, كـ Linux Kernel (نواة لينكس) على سبيل المثال, أن تبني تجريديات Abstractions عبر استخدام عدة لغات تجميع على كل منصة عتادة مختلفة Hardware Platform.ويمكن للكود النقال Portable الخاص بالنظام أن يستخدم المكونات الخاصة بكل معالج -للعمل مع مختلف المنصات- خلال واجهة Interface موحدة.

وتعد لغة التجميع شيئا ذي قيمة كبيرة مع "الهندسة العكسية" Reverse Engineering, لأن العديد من البرامج يتم تداولها في صيغة كود آلة Machine Code, وغالبا ما يكون "كود الآلة" سهلا في الترجمة إلى لغة التجميع ويختبر بعناية في هذا الشكل, أما تحويله إلى لغة عالية المستوى لهو أمر صعب للغاية.وتستخدم أدوات مثل "المفكك التفاعلي" Interactive Disassembler نفس التقنية على شكل واسع من أجل نفس الأهداف.

هناك أيضا الدموسين والذي يجعل من استخدام لغة التجميع حقلا فريدا له.فهناك العديد من المسابقات الخاصة التي تقيد المتسابقين بتقييد إبداعاتهم -من البرامج- إلى حجم صغير جدا (أمثلة: 256 بايت, 1 كيلو بايت, 4 كيلو بايت أو 64 كيلو بايت), وبالطبع فإن لغة التجميع هي أمثل حل لتحقيق هذا الهدف.وعندما يكون الحفاظ على الموارد Resources, وخاصة وحدة المعالجة المركزية CPU للأنظمة التي تفرض قيودا على المعالجة Processing, مثل النماذج السابقة لأجهزة Amiga وأجهزة Commodore 64, هنا تصبح البرمجة بلغة التجميع أمرا لا بد منه: حيث يتم كتابة كود التجميع "يدويا" ويتم إعداد تسلسل التعليمات عبر المبرمجين في محاولة لخفض عدد دورات الـ CPU المستخدمة؛ لأن القيود المفروضة على الـ CPU غاية في الصرامة, لدرجة أن كل دورة للـ CPU يحب وضعها في الحسبان.ومع ذلك, فإن الفضل يرجع لاستخدام مثل تلك التطبيقات والتي أتاحت نظما مثل Commodore 64 أن ينتج رسوميات ثلاثية الأبعاد 3D Graphics تعمل في نمط "الزمن الحقيقي" Real-Time, مع تأثيرات متقدمة Effects, وهو الإنجاز الذي قد يعتبر تحقيقه بعيد الاحتمال على أجهزة حديثة ومتطورة مع معالج 0.99 ميجا هيرتز.[بحاجة لمصدر]

ليست هناك تعليقات:

إرسال تعليق