لغة التجميع: الفرق بين النسختين

تم إضافة 14 بايت ، ‏ قبل 5 أشهر
ط
Bot: Replace deprecated <source> tag and "enclose" parameter، تغييرات تجميلية
وسوم: تحرير من المحمول تعديل بتطبيق المحمول تعديل بتطبيق أندرويد
ط (Bot: Replace deprecated <source> tag and "enclose" parameter، تغييرات تجميلية)
ومع قرائتك للسطر السابق تشعر بأن تمثيل الكود عبر لغة التجميع لهو أسهل للقراءة وللتذكر (مثال باستخدام تراكيب شركة إنتل، انظر [[استذكار]]
 
* <sourcesyntaxhighlight lang="asm">MOV AL, #61h</sourcesyntaxhighlight>
 
وتعني هذه التعليمات ما يلي:
* الـ "توجيه المجمع" Assembler Directive، هو أمر Command يتم توجيهه إلى المجمع.وقد تؤدي هذه الموجهات أي شيء، مثل إخبار المجمع بأن يدمج مع البرنامج ملفات كود أخرى Source Files، أو يخبر البرنامج بتخصيص أماكن معينة في الذاكرة لتحمل بيانات ثابتة Constants.
 
== قائمة بالمجمعات الخاصة بالهندسات Architectures المختلفة للكمبيوتر ==
تحتوي الصفحة التالية على قائمة بأنواع مختلفة من المجمعات التي تعمل مع هندسات/أبنية مختلفة من الحواسب، وتحوي القائمة معلومات مرتبطة بكل نوع من أنواع تلك المجمعات:
 
لكل مجمع لهجة خاصة Dialect، داخل مجموعة من المجمعات.وأحيانا، تستطيع بعض المجمعات قراءة اللهجة الخاصة بمجمع آخر، وعلى سبيل المثال، يمكن لمجمع TASM من قراءة كود الـ MASM القديم، لكن العكس ليس صحيحا.ويمتلك مجمعي الـ FASM والـ NASM بناء لغوي متشابه Syntax، لكن كلا منهم يدعم مجموعة مختلفة من الماكرو Macro مما يجعل من الصعب الترجمة من أحدهم للآخر.وبالطبع فإن الأساسيات تظل واحدة، لكن المميزات المتقدمة Advanced Features تختلف.
 
أيضا، يمكن للغة التجميع أن تكون منقولة Portable عبر عدة أنظمة تشغيل، وعلى وحدة معالجة مركزية CPU واحدة. فاصطلاحات Conventions استدعاء الوظائف لا تختلف كثيرا بين أنظمة التشغيل المختلفة وأحيانا لا تختلف على الإطلاق، وببعض الحرص Care، يمكن الحصول على "نقالية" Portability في لغة التجميع، وعادة يتم ذلك عبر الربط مع مكتبة سي C والتي لا تتغير بين نظم التشغيل.
 
وعلى سبيل المثال، العديد من الأشياء داخل مكتبة لغة السي libc تعتمد على "ما قبل المعالجة" Preprocessor لتقوم بأشياء مرتبطة بنظام التشغيل OS-Specific، واشياء مرتبطة بلغة السي C-Specific، وتقوم بعمل ذلك للبرنامج قبل أن تبدأ في الترجمة Compiling.وفي واقع الأمر، فإن بعض الوظائف والرموز لا يمكن ضمان وجودها خارج الـ Preprocessor.الأسوأ من ذلك، أن حجم وترتيب البنيات Structs، فضلا عن حجم بعض أنواع من تعريف الأنواع typedefs مثل off_t، لا يوجد تعريف مثل هذه الاشياء في لغة التجميع -بدون مساعدة من ملف خارجي لتحديد هذه القيم Configure Script-، وتختلف حتى بين الإصدارات المختلفة من لينكس Linux، مما يجعل من المستحيل أن يتم استدعاء وظائف من مكتبة السي libc بشكل نقال Portable، غير تلك التي تتعامل بشكل بسيط مع القيم الصحيحة Integers والمؤشرات Pointers كمعاملات.ولمعالجة هذه المسألة، يقوم مشروع FASMLIB (مكتبة للمجمع FASM) بتوفير مكتبة نقالة للمجمع تعمل على منصات Win32 ولينكس Linux، لكنها ليست كاملة بشكل كافي حتى الآن.
ويقوم بمصاحبة كل تعليمة مولدة (عبر المجمع) الكود النهائي Object Code والذي يتوائم مع هندسة الكمبويتر الافتراضي Virtual Computer's Architecture.
 
== انظر أيضا ==
 
* [[محول برمجي]]
* مايكل سينجر، PDP-11.البرمجة باستخدام لغة المجمع، وتنظيم الآلة Machine Organization، دار جون ويلي وأبناؤه للنشر: نيويورك: 1980.
* دومينيك سويتمان: انظر لـ MIPS وهو يعمل.مورجان كوفان للنشر, 1999.ISBN 1-55860-410-3
* جون والدورن: مقدمة للبرمجة باستخدام لغة التجميع RISC.دار أديسون ويسلي للنشر، 1998. ISBN 0-201-39828-1
 
== وصلات خارجية ==
204٬314

تعديل