Microsoft Macro Assembler

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

Перейти к: навигация, поиск

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

Содержание

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

Программа Hello World на MASM32, которая выводит это знаменитое сообщение и завершается.

    .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

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

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

История

В начале 1990-х годов альтернативные ассемблеры, типа Borland TASM и свободного ассемблера NASM, начали отбирать часть доли рынка MASM. Однако два события в конце 1990-х позволили MASM сохранить большую часть своей доли: сначала Microsoft прекратила продавать MASM как коммерческий продукт и начала распространять его бесплатно как часть DDK (англ. Device Driver Kit — комплект для создания драйверов). Во-вторых, благодаря пакету MASM32 и обучающим программам Iczelion’а Win32, оказалось, что программирование на MASM возможно и в среде Microsoft Windows. В 2000 году MASM 6.15 был выпущен как часть бесплатного[источник не указан 2166 дней] пакета разработки 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-разрядного режима. Радикальных перемен в ассемблере не происходит.[источник не указан 2166 дней]

Ссылки


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

Личные инструменты

Served in 0.180 secs.