مايكروسوفت ماكرو أسيمبلر
برنامج تجميع الماكرو من مايكروسوفت ( MASM ) هو برنامج تجميع x86 يستخدم صيغة إنتل لأنظمة MS-DOS ومايكروسوفت ويندوز . بدءًا من MASM 8.0، يتوفر إصداران من برنامج التجميع: أحدهما لمصادر التجميع 16 بت و 32 بت ، والآخر ( ML64 ) لمصادر 64 بت فقط.
تتولى مايكروسوفت صيانة MASM ، ولكن منذ الإصدار 6.12 لم يعد يُباع كمنتج منفصل، بل يُرفق مع حزم تطوير البرامج (SDKs) ومترجمات لغة C المختلفة من مايكروسوفت . وتُضمّن الإصدارات الحديثة من MASM مع مايكروسوفت فيجوال ستوديو .
من أبرز التطبيقات التي تم تجميعها باستخدام MASM لعبة RollerCoaster Tycoon التي كُتبت بنسبة 99% بلغة التجميع وتم بناؤها باستخدام MASM. [ 1 ]
تاريخ
يعود تاريخ أقدم إصدارات MASM إلى عام 1981. [ 2 ] وقد بيعت إما كبرنامج تجميع ماكرو مايكروسوفت العام لجميع أجهزة x86، أو كإصدار خاص بأجهزة IBM PC . وبحلول الإصدار 4.0، توقف إصدار IBM . وحتى الإصدار 3.0، كان MASM يُرفق أيضًا ببرنامج تجميع مصاحب أصغر حجمًا، ASM.EXE. وكان هذا البرنامج مخصصًا لأجهزة الكمبيوتر الشخصية ذات ذاكرة 64 كيلوبايت فقط، ويفتقر إلى بعض ميزات MASM الكاملة، مثل القدرة على استخدام وحدات الماكرو البرمجية.
تضمنت إصدارات MS-DOS حتى الإصدار 4.x أداة LINK من Microsoft، والتي صُممت لتحويل ملفات OBJ الوسيطة التي تم إنشاؤها بواسطة MASM والمترجمات الأخرى؛ ومع ذلك، نظرًا لأن المستخدمين الذين لم يبرمجوا لم يكن لديهم أي استخدام للأداة، فقد تم نقلها إلى حزم المترجم الخاصة بهم.
أضاف الإصدار 4.0، الذي صدر في أكتوبر 1985، دعمًا لتعليمات 286 .
الإصدار 5.0، الذي صدر في أغسطس 1987، كان يدعم تعليمات 386 ، وكذلك اختصارات لوصفات القطاعات (.code، .data، إلخ)، ولكنه كان لا يزال بإمكانه إنشاء ملفات تنفيذية في الوضع الحقيقي فقط.
كان برنامج MASM متاحًا حتى الإصدار 5.0 كتطبيق لنظام التشغيل MS-DOS فقط. أما الإصداران 5.1 و6.0 فكانا متاحين كتطبيقات لنظامي التشغيل MS-DOS و OS/2 . [ 3 ]
أضاف الإصدار 6.0، الذي صدر عام 1991، ميزة تمرير المعاملات باستخدام "invoke" وبعض البنى البرمجية عالية المستوى الأخرى، بالإضافة إلى السجلات عالية المستوى الموجودة مسبقًا ، من بين أمور أخرى. كان بالإمكان تشغيل كل من الإصدارين 6.0 و6.0B على معالج 8086، لكنهما كانا قادرين على توليد كود 386 مسطح 32 بت. في عام 1992، صدر الإصدار 6.1، الذي أضاف دعمًا لتنسيق كائنات COFF المستخدم في نظام التشغيل Windows NT ، وأزال دعم نظام التشغيل OS/2. تم بناء الإصدار 6.1 كملف ثنائي الوضع قبل الانتهاء من واجهة برمجة تطبيقات Win32 ، وهو غير متوافق مع التشغيل على نظام Windows NT بسبب نقص بعض عمليات التصدير. [ 4 ]
في عام ١٩٩٣، أُضيفت دعم كامل لتطبيقات ٣٢ بت في الوضع المحمي ومجموعة تعليمات بنتيوم . في ذلك الوقت (١٩٩٣)، تم شحن ملف MASM الثنائي 6.11 كملف ثنائي "ثنائي الوضع" (win32، أي PE ) مُوسّع لنظام DOS (باستخدام مُوسّع Phar Lap TNT DOS). مع ذلك، فإن ملف setup.exe هو ملف تنفيذي MZ، لذا لن يعمل على إصدارات ويندوز ٦٤ بت، وملف ml.exe ثنائي الوضع مضغوط ، وملف decomp.exe هو ملف تنفيذي NE، لذا لن يعمل أيضًا على إصدارات ويندوز ٦٤ بت، وبالتالي أنت بحاجة فعليًا إلى نظام ويندوز ٣٢ بت (أو MS-DOS) لتثبيته. الإصدار ٦.١١ هو آخر إصدار من MASM يعمل على MS-DOS. كانت هناك سلسلة من التصحيحات المتاحة، حتى الإصدار 6.11d، والتي تتطلب نظام تشغيل ويندوز 32 بت لتشغيلها، ولكن ملف ml.exe المصحح لا يزال يحتوي على موسع Phar Lap dos، لذا لا يزال من الممكن تشغيله تحت MSDOS.
بحلول نهاية عام 1997، كان برنامج MASM يدعم نظام التشغيل Windows 95 بشكل كامل ، وتضمن بعض التعليمات الخاصة بمعالجات AMD . [ 5 ]
في عام ١٩٩٩، أصدرت إنتل وحدات ماكرو لتعليمات SIMD و MMX ، والتي سرعان ما أصبحت مدعومة بشكل أصلي من قِبل MASM. مع إصدار النسخة ٦.١٥ في عام ٢٠٠٠، أوقفت مايكروسوفت دعم MASM كمنتج منفصل، ودمجته بدلاً من ذلك في مجموعة أدوات Visual Studio . على الرغم من أنه كان لا يزال متوافقًا مع نظام التشغيل Windows 98 ، إلا أن الإصدارات الحالية من Visual Studio لم تكن كذلك. [ ٥ ] لم يُضَف دعم المعالجات ٦٤ بت إلا مع إصدار Visual Studio ٢٠٠٥ ، الذي تضمن MASM ٨.٠.
بعد 25 يونيو 2015، يوجد على الأقل ثلاثة إصدارات مختلفة من MASM تحمل الرقم 14.00.23026. في Microsoft Visual Studio 2015 Enterprise Edition، يوجد ملف ml واحد باسم "amd64_x86" وملفان ml64 باسم "x86_amd64" و"amd64". تعمل هذه الملفات على منصات مختلفة وتستهدف منصات مختلفة.
- amd64_x86: يُنشئ رمزًا 64 بت، ويعمل في بيئة ويندوز 32 بت
- x86_amd64: يُولّد رمزًا 32 بت، ويعمل في بيئة ويندوز 64 بت
- amd64: يُنشئ رمزًا 64 بت، ويعمل في بيئة ويندوز 64 بت
تنسيقات وحدات الكائنات التي يدعمها MASM
كانت الإصدارات المبكرة من MASM تقوم بإنشاء وحدات كائنية باستخدام تنسيق OMF ، والذي كان يستخدم لإنشاء ملفات ثنائية لأنظمة MS-DOS أو OS/2 .
منذ الإصدار 6.1، أصبح برنامج MASM قادرًا على إنتاج وحدات كائنية بتنسيق الملف التنفيذي المحمول [ 6 ] [ 7 ] (PE/COFF). يتوافق تنسيق PE/COFF مع أحدث مُجمِّعات لغة C من مايكروسوفت، ويمكن دمج الوحدات الكائنية المنتجة بواسطة MASM أو مُجمِّع لغة C وربطها بسهولة في ملفات ثنائية Win32 وWin64.
برامج تجميع متوافقة مع MASM
يمكن لبعض المجمعات الأخرى تجميع معظم التعليمات البرمجية المكتوبة لـ MASM، باستثناء وحدات الماكرو الأكثر تعقيدًا.
- تم تطوير Turbo Assembler (TASM) بواسطة Borland ، والتي امتلكتها لاحقًا Embarcadero، وتم تحديثها آخر مرة في عام 2002، ولكنها لا تزال مزودة بـ C++Builder و RAD Studio .
- برنامج تجميع الماكرو JWasm ، مرخص بموجب اتفاقية ترخيص المستخدم النهائي Sybase Open Watcom . آخر تحديث في عام 2014.
- Pelle's Macro Assembler، وهو أحد مكونات بيئة تطوير Pelles C المؤرشفة بتاريخ 2020-02-29 في Wayback Machine .
- UASM هو برنامج تجميع مجاني متوافق مع MASM يعتمد على JWasm.
- ASMC هو برنامج تجميع مجاني متوافق مع MASM يعتمد على JWasm.
دعم البرمجة متعددة اللغات
تضمنت وثائق الإصدار 5.1 لعام 1987 دعمًا لـ " Microsoft BASIC و C و FORTRAN و Pascal ". [ 8 ]
استقبال
في مراجعةٍ لثلاثة مُجمِّعات، وجد مايكل بلازتشاك من مجلة BYTE في فبراير 1989 أن MASM 5.1 كان الأبطأ والأكثر شكوىً بشأن الكود. وخلص إلى أن "MASM يحتاج إلى بعض الوقت للتعود عليه، ولكنه يُنجز المهمة" على الرغم من "وجود نصيبه العادل من العيوب والغرائب المُحبطة". [ 9 ]
انظر أيضاً
مراجع
- ↑ "تطوير برمجيات كريس سوير" . www.chrissawyergames.com . مؤرشف من الأصل بتاريخ 7 مارس 2025. تم الاطلاع عليه بتاريخ 5 يناير 2023 .
- ↑ وات، بيغي؛ كريستين ماكجيفر (7 يناير 1985). "ماكنتوش مقابل حاسوب آي بي إم الشخصي بعد عام واحد" . إنفوورلد . المجلد 7، العدد 1. الصفحات 15-16 . الرقم الدولي الموحد للدوريات 0199-6649 . تم إصدار برنامج IBM PC Macro Assembler في ديسمبر 1981.
- ↑ مارشال، مارتن (29 أبريل 1991). "تحديث مُجمِّع الماكرو يُضيف ميزات عالية المستوى" . إنفوورلد . المجلد 13، العدد 17. ص 21. الرقم الدولي الموحد للدوريات 0199-6649 .
- ↑ "Q94314: كود MASM لنموذج الذاكرة المسطحة 32 بت لنظام التشغيل Windows NT" . مؤرشف من الأصل في 13 يناير 2021. تم الاطلاع عليه في 3 أكتوبر 2023 .
- 1 2 ر. إ. هارفي (2007). "المجمّعون" . مؤرشف من الأصل في 16 فبراير 2008. تم الاسترجاع في 4 فبراير 2010 .
- ↑ "نسخة مؤرشفة" . مؤرشفة من الأصل بتاريخ 26-01-2009 . تم الاطلاع عليها بتاريخ 24-06-2008 .
{{cite web}}: CS1 maint: archived copy as title ( link ) - ↑ "الأوراق البيضاء والوثائق الخاصة بمؤتمر تطوير البرمجيات العالمي" . مايكروسوفت . تم الاطلاع عليه بتاريخ 25 سبتمبر 2016 .
- ↑ دليل برمجة اللغات المختلطة لبرنامج Microsoft Macro Assembler 5.1. صفحة 3.
- ↑ بلازتشاك، مايكل (فبراير 1989). "ثلاثة مُجمِّعات لنظام MS-DOS" . بايت . الصفحات 205-209 . تاريخ الاسترجاع : 8 أكتوبر 2024 .
روابط خارجية
- برنامج عام 1981
- المجمّعون
- أدوات تطوير مايكروسوفت
- برنامج DOS
- أدوات البرمجة لنظام التشغيل ويندوز
