FASM

FASM ( المجمع المسطح ) هو مجمع لمعالجات x86 . يدعم لغة التجميع على نمط Intel على معماريتي IA-32 و x86-64 . يتميز بسرعة عالية، وتحسينات في الحجم، وقابلية نقل نظام التشغيل ، وقدرات الماكرو . [ 2 ] [ 3 ] وهو مجمع منخفض المستوى [ 3 ] ويستخدم عمدًا عددًا قليلًا جدًا من خيارات سطر الأوامر . وهو برنامج مجاني ومفتوح المصدر .

يمكن لجميع إصدارات FASM إخراج أي مما يلي مباشرةً: ملفات ثنائية "خام" (قابلة للاستخدام أيضًا كملف تنفيذي MS-DOS COM أو برنامج تشغيل SYS)، أو كائنات بتنسيق ELF (ملف تنفيذي وربط ) أو تنسيق COFF (كلاسيكي أو خاص بنظام MS)، أو ملفات تنفيذية بتنسيق MZ أو ELF أو PE (بما في ذلك برامج تشغيل WDM، مما يسمح بإنشاء ملف MZ DOS مخصص). يوجد أيضًا إصدار غير رسمي يستهدف بنية ARM . [ 4 ]

تاريخ

بدأ المشروع عام ١٩٩٩ على يد توماش غريستار، المعروف أيضًا باسم بريفالوف ، وكان حينها طالبًا جامعيًا في الرياضيات من بولندا . وتم إطلاقه رسميًا في مارس ٢٠٠٠. [ ٥ ] [ ٦ ] برنامج FASM مكتوب بالكامل بلغة التجميع ، ويأتي مع شفرة المصدر الكاملة. وهو برنامج ذاتي الاستضافة ، وقادر على تجميع نفسه منذ الإصدار ٠.٩٠ (٤ مايو ١٩٩٩).

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

تصميم

لا يدعم FASM عددًا كبيرًا من التعليمات عالية المستوى مثل MASM أو TASM . [ 3 ] يوفر FASM ميزات بناء الجملة ووحدات الماكرو، مما يتيح تخصيص التعليمات المفقودة أو إنشائها. [ 5 ] يشبه بناء جملة عنونة الذاكرة فيه الوضع المثالي في TASM و NASM . تُستخدم الأقواس للدلالة على معاملات الذاكرة كما هو الحال في كلا المُجمِّعين، ولكن يتم وضع حجمها خارج الأقواس، كما هو الحال في NASM. [ 7 ]

FASM هو مُجمِّع متعدد المراحل. يُجري تحسينًا كبيرًا لحجم الكود ويسمح بالإشارة الأمامية غير المقيدة. [ 3 ] [ 7 ] من بين بنيات FASM غير المألوفة تعريف الإجراءات فقط إذا تم استخدامها في مكان ما في الكود، وهو أمر يتم في معظم اللغات على مستوى كل كائن بواسطة الرابط .

تعتمد لغة FASM على مبدأ "نفس المصدر، نفس المخرج": لا تتأثر محتويات الملف الناتج بأوامر سطر الأوامر. [ 7 ] يحمي هذا النهج مصادر FASM من مشاكل التجميع الشائعة في العديد من مشاريع لغة التجميع. من ناحية أخرى، يُصعّب هذا النهج صيانة مشروع يتكون من ملفات مصدرية متعددة مُجمّعة بشكل منفصل أو مشاريع بلغات مختلطة. مع ذلك، يوجد غلاف Win32 يُسمى FA، يُخفف من هذه المشكلة. [ 8 ] يمكن بناء مشاريع FASM من ملف مصدر واحد مباشرةً إلى ملف تنفيذي دون الحاجة إلى مرحلة ربط. [ 3 ]

بيئة التطوير المتكاملة

Fresh ، وهو مشروع بدأه جون فاوند، هو بيئة تطوير متكاملة لـ FASM تحت نظامي التشغيل ويندوز ولينكس. [ 9 ]

يستخدم

أنظمة التشغيل المكتوبة باستخدام FASM:

المترجمات التي تستخدم FASM كخلفية:

انظر أيضاً

مراجع

  1. "تنزيل" .
  2. غريزتار، توماش (12-05-2008). "دليل مبرمج لغة التجميع المسطحة" . لغة التجميع المسطحة . تم الاسترجاع في 12-05-2008 .
  3. 1 2 3 4 5 هايد، راندال. "أي مُجمِّع هو الأفضل؟" . تم الاسترجاع في 18-05-2008 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  4. "FASMARM" . 2008-03-20 . تم الاطلاع عليه بتاريخ 2008-05-12 .
  5. 1 2 "مقابلة مع بريفالوف مؤلف كتاب FASM" . 12 أغسطس 2004. مؤرشف من الأصل بتاريخ 8 أكتوبر 2007. تم الاطلاع عليه بتاريخ 12 مايو 2008 .
  6. غريزتار، توماش (15-03-2000). "مُجمِّع مسطح" . تم الاسترجاع في 19-05-2008 .
  7. 1 2 3 غريزتار، توماش. "مبادئ تصميم المُجمِّع المسطح" . تم الاسترجاع في 12-05-2008 .
  8. غريزتار، توماش. "FA - امتداد سطر الأوامر لـ fasm" . تم الاسترجاع في 11-05-2012 .
  9. تم العثور عليه، جون. "مشروع الهوية الجديدة" .
  10. "MenuetOS" . تم الاطلاع عليه بتاريخ 18-05-2008 .