Microsoft Macro Assembler

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

Microsoft Macro Assembler (MASM, макроассемблер Microsoft) — ассемблер для процессоров семейства x86. Первоначально был произведён компанией Microsoft для написания программ в операционной системы MS-DOS и был в течение некоторого времени самым популярным ассемблером, доступным для неё. Это поддерживало широкое разнообразие макросредств и структурированность программных идиом, включая конструкции высокого уровня для повторов, вызовов процедур и чередований (поэтому MASM — ассемблера высокого уровня). Позднее[когда?] была добавлена возможность написания программ для Windows. MASM — один из немногих инструментов разработки Microsoft, для которых не было отдельных 16- и 32-битных версий.

Пример программы

Программа Hello World на MASM32, которая выводит это знаменитое сообщение и завершается. <source lang="asm">

   .386
   .model flat, stdcall
   option casemap :none
   include \masm32\include\masm32.inc
   include \masm32\include\kernel32.inc
   include \masm32\macros\macros.asm
   includelib \masm32\lib\masm32.lib
   includelib \masm32\lib\kernel32.lib
   .code
   start:
     print "Hello world"
     exit
   end start

</source>

Пример той же программы на языке MASM версии 4.0 для процессора Intel 8086.

<source lang="asm"> include io.asm

  data segment
       x db 'Hello world!', '$'
  data ends
 stack segment stack
       db 128 dup (?)
 stack ends
  code segment
       assume cs: code, ds: data, ss: stack
start: mov ax, data
       mov ds, ax
       lea dx, x
       outstr
       finish
  code ends
       end start

</source>

История

В начале 1990-х годов альтернативные ассемблеры, типа Borland TASM и свободного ассемблера NASM, начали отбирать часть доли рынка MASM. Однако два события в конце 1990-х позволили MASM сохранить большую часть своей доли: сначала Microsoft прекратила продавать MASM как коммерческий продукт и начала распространять его бесплатно как часть DDK (англ. Device Driver Kit — комплект для создания драйверов). Во-вторых, благодаря пакету MASM32 и обучающим программам Iczelion’а Win32, оказалось, что программирование на MASM возможно и в среде Microsoft Windows. В 2000 году MASM 6.15 был выпущен как часть бесплатного[источник не указан 5968 дней] пакета разработки Visual C++ и все версии Visual C++ после 6.0 включали в себя версию MASM, равную версии Visual C++. Позже в Visual C++ 2005 появилась 64-битная версия MASM. Вместе с большим сообществом программистов MASM эти события помогли остановить снижение популярности MASM по сравнению с другими ассемблерами. Сегодня MASM — всё ещё ассемблер номер один на платформе Win32, несмотря на конкуренцию с новыми продуктами, такими как NASM, fasm, TASM, HLASM.

Проекты, поддерживающие MASM

Есть много развивающихся проектов для разработки программного обеспечения, которые поддерживают MASM, включая IDE (например RadASM), отладчики (вроде OllyDbg), и дизассемблеры (включая IDAPro, интерактивный дизассемблер). Проект MASM32 объединил в себе очень внушительную библиотеку программиста, крупный репозиторий исходных кодов, и внушительную документацию для пользователей MASM. MASM также поддерживается большим количеством веб-страниц и форумов поддержки.

Версии MASM

Хотя MASM больше не является коммерческим продуктом, Microsoft продолжает поддерживать исходный код, используемый и в других продуктах Microsoft. С тех пор как Microsoft прекратила продавать MASM отдельно, было выпущено несколько обновлений к производственной линии MASM 6.x (последнее обновление — версия 6.15, которая была включена в Visual C++ 6.0), а после этого — MASM 7.0 в составе Visual C++ .NET 2002, MASM 7.1 в составе Visual C++ .NET 2003, MASM 8.0 в составе Visual C++ 2005 и MASM 9.0 в составе Visual C++ 2008, поддерживающие платформу x64.

Поддержка

В настоящее время поддержка макроассемблера корпорацией Microsoft ограничена добавлением новых инструкций (для новых процессоров) и улучшением 64-разрядного режима. Радикальных перемен в ассемблере не происходит.[источник не указан 5968 дней]

Ссылки


cs:Microsoft Macro Assembler de:Microsoft Macro Assembler en:Microsoft Macro Assembler es:Microsoft Macro Assembler fr:Microsoft Macro Assembler ja:Microsoft Macro Assembler zh:MASM

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....