ماکرو اسمبلر مایکروسافت

از ویکیپدیا، دانشنامه آزاد
پرش به ناوبری پرش به جستجو
ماکرو اسمبلر مایکروسافت
توسعه دهندگانمایکروسافت
انتشار اولیه1981 ; 41 سال پیش ( 1981 )
انتشار پایدار
14.16.27023.1 / 7 مارس 2017 ; 5 سال پیش ( 2017-03-07 )
سیستم عاملمایکروسافت ویندوز و MS-DOS
تایپ کنیدمونتاژ کننده
مجوز نرم افزار اختصاصی تجاری
سایت اینترنتیdocs .microsoft.com /en-us /cpp / assembler /masm /microsoft-macro-assembler-reference

ماکرو اسمبلر مایکروسافت ( MASM ) یک اسمبلر x86 است که از سینتکس اینتل برای MS-DOS و مایکروسافت ویندوز استفاده می کند. با شروع MASM 8.0، دو نسخه از اسمبلر وجود دارد: یکی برای منابع اسمبلی 16 بیتی و 32 بیتی ، و دیگری ( ML64 ) فقط برای منابع 64 بیتی .

MASM توسط مایکروسافت نگهداری می شود ، اما از نسخه 6.12 به عنوان یک محصول جداگانه فروخته نشده است. در عوض با کامپایلرهای مختلف Microsoft SDK و C عرضه می شود. نسخه‌های اخیر MASM با Microsoft Visual Studio ارائه شده است.

تاریخچه

اولین نسخه‌های MASM به سال 1981 باز می‌گردد. [1] آنها یا به‌عنوان «مجموعه‌کننده ماکرو سافت مایکروسافت» برای همه دستگاه‌های x86 یا به‌عنوان نسخه OEM به‌طور خاص برای رایانه‌های شخصی IBM فروخته می‌شدند . در نسخه 4.0، انتشار IBM حذف شد. تا نسخه 3.0، MASM با یک اسمبلر همراه کوچکتر، ASM.EXE نیز همراه بود. این برای رایانه های شخصی با تنها 64 هزار حافظه در نظر گرفته شده بود و برخی از ویژگی های MASM کامل مانند توانایی استفاده از ماکروهای کد را نداشت.

نسخه‌های MS-DOS تا 4.x شامل ابزار LINK مایکروسافت بود که برای تبدیل فایل‌های OBJ میانی تولید شده توسط MASM و سایر کامپایلرها طراحی شده بود. با این حال، از آنجایی که کاربرانی که برنامه‌نویسی نمی‌کردند، هیچ استفاده‌ای از این ابزار نداشتند، این ابزار به بسته‌های کامپایلر آنها منتقل شد.

نسخه 4.0 پشتیبانی از 286 دستورالعمل و همچنین یادداشت کوتاه برای توصیفگرهای بخش (کد، داده، و غیره) را اضافه کرد. نسخه 5.0 از 386 دستورالعمل پشتیبانی می‌کرد، اما همچنان می‌توانست فایل‌های اجرایی حالت واقعی تولید کند.

از طریق نسخه 5.0، MASM فقط به عنوان یک برنامه MS-DOS در دسترس بود . نسخه‌های 5.1 و 6.0 به‌عنوان برنامه‌های MS-DOS و OS/2 در دسترس بودند . [2]

نسخه 6.0، که در سال 1992 منتشر شد، عبور پارامتر را با "Invoke" و برخی ساختارهای مشابه سطح بالا، علاوه بر رکوردهای مشابه سطح بالا ، از جمله موارد دیگر، اضافه کرد. تا پایان سال، نسخه 6.1A مدیریت حافظه را به روز کرد [ چگونه؟ ] [ توضیحات لازم ] برای سازگاری با کدهای تولید شده توسط Visual C++ . در سال 1993 پشتیبانی کامل از برنامه های 32 بیتی حالت محافظت شده و مجموعه دستورالعمل Pentium اضافه شد. باینری MASM در آن زمان به‌عنوان یک باینری توسعه‌یافته DOS «دو حالته» (با استفاده از توسعه‌دهنده Phar Lap TNT DOS) ارسال شد.

نسخه های 6.12 تا 6.14 به عنوان وصله برای نسخه 6.11 پیاده سازی شدند. این وصله ها نوع باینری را به فرمت PE بومی تغییر دادند. نسخه 6.11 آخرین نسخه MASM است که تحت MS-DOS اجرا می شود.

در پایان سال 1997، MASM به طور کامل از ویندوز 95 پشتیبانی می کرد و شامل دستورالعمل های خاص AMD بود. [3]

در سال 1999، اینتل ماکروهایی را برای دستورالعمل های SIMD و MMX منتشر کرد که مدت کوتاهی پس از آن توسط MASM پشتیبانی شد. با انتشار 6.15 در سال 2000، مایکروسافت پشتیبانی از MASM را به عنوان یک محصول جداگانه متوقف کرد و در عوض آن را در مجموعه ابزار ویژوال استودیو قرار داد. اگرچه هنوز با ویندوز 98 سازگار بود ، نسخه های فعلی ویژوال استودیو سازگار نبود. [3] پشتیبانی از پردازنده های 64 بیتی تا زمان انتشار Visual Studio 2005 با MASM 8.0 اضافه نشد.

پس از 25 ژوئن 2015، حداقل سه MASM مختلف با شماره نسخه 14.00.23026 وجود دارد. در Microsoft Visual Studio 2015 Enterprise Edition، یک "amd64_x86" ml و دو ml64s، "x86_amd64" و "amd64" وجود دارد. آنها بر روی پلتفرم های مختلف اجرا می شوند که پلتفرم های مختلف را هدف قرار می دهند:

  • amd64_x86: کد 64 بیتی تولید می کند، در یک محیط ویندوز 32 بیتی اجرا می شود.
  • x86_amd64: کد 32 بیتی تولید می کند، در محیط 64 بیتی ویندوز اجرا می شود
  • amd64: کد 64 بیتی تولید می کند، در یک محیط ویندوز 64 بیتی اجرا می شود

فرمت های ماژول شی پشتیبانی شده توسط MASM

نسخه‌های اولیه MASM ماژول‌های شی را با استفاده از فرمت OMF تولید می‌کردند که برای ایجاد فایل‌های باینری برای MS-DOS یا OS/2 استفاده می‌شد .

از نسخه 6.1، MASM قادر به تولید ماژول های شی در قالب اجرایی قابل حمل [4] [5] (PE/COFF) است. PE/COFF با کامپایلرهای اخیر مایکروسافت C سازگار است و ماژول‌های شی تولید شده توسط MASM یا کامپایلر C می‌توانند به طور معمول با هم ترکیب شوند و به باینری‌های Win32 و Win64 متصل شوند.

اسمبلرهای سازگار با MASM

برخی اسمبلرهای دیگر می توانند اکثر کدهای نوشته شده برای MASM را به استثنای ماکروهای پیچیده تر مونتاژ کنند.

  • Turbo Assembler (TASM) توسعه یافته توسط Borland، که بعداً متعلق به Embarcadero شد، آخرین بار در سال 2002 به روز شد، اما همچنان با C++Builder و RAD Studio عرضه می شود.
  • JWasm Macro Assembler، تحت مجوز Sybase Open Watcom EULA. آخرین به روز رسانی در سال 2014.
  • ماکرو اسمبلر Pelle، جزئی از Pelles C بایگانی شده 29-02-2020 در محیط توسعه Wayback Machine .
  • UASM یک اسمبلر رایگان سازگار با MASM بر اساس JWasm است.
  • ASMC یک اسمبلر رایگان سازگار با MASM بر اساس JWasm است.

پشتیبانی از برنامه نویسی زبان ترکیبی

اسناد نسخه 5.1 1987 شامل پشتیبانی از "Microsoft BASIC، C، FORTRAN، Pascal" بود. [6]

همچنین ببینید

منابع

  1. ^ وات، پگی؛ کریستین مک گیور (7 ژانویه 1985). "مکینتاش در برابر کامپیوتر IBM در یک سال" . InfoWorld . جلد 7، نه 1. صص 15-16. ISSN  0199-6649 .IBM PC Macro Assembler در دسامبر 1981 منتشر شد.
  2. مارشال، مارتین (۲۹ آوریل ۱۹۹۱). «به‌روزرسانی ماکرو اسمبلر ویژگی‌های سطح بالا را اضافه می‌کند» . InfoWorld . جلد 13، شماره 17. ص. 21. ISSN 0199-6649 . 
  3. ^ a b R. E. Harvey (2007). "مونتاژکنندگان" . بایگانی شده از نسخه اصلی در 16 فوریه 2008 . بازبینی شده در 4 فوریه 2010 .
  4. «کپی بایگانی شده» . بایگانی شده از نسخه اصلی در 2009-01-26 . بازیابی شده در 2008-06-24 .{{cite web}}: CS1 maint: کپی بایگانی شده به عنوان عنوان ( پیوند )
  5. «WHDC White Papers and Documentation» . مایکروسافت . بازبینی شده در 25 سپتامبر 2016 .
  6. Microsoft Macro Assembler 5.1, Mixed-Language Programming Guide . پ. 3.

پیوندهای خارجی