MASM
Microsoft Macro Assembler | |
---|---|
Тип | Компилятор |
Автор | Microsoft |
Разработчик | Microsoft |
Операционные системы | MS-DOS, Windows |
Языки интерфейса | русский, английский и др. |
Первый выпуск | 1981 |
Последняя версия | 14.16.27023.1 (7 марта 2017) |
Состояние | активное |
Лицензия | Microsoft EULA |
Сайт | microsoft.com/en-us/down… |
MASM (Microsoft Macro Assembler) — ассемблер для процессоров семейства x86. Первоначально был произведён компанией Microsoft для написания программ в операционной системе MS-DOS и был в течение некоторого времени самым популярным ассемблером, доступным для неё. MASM поддерживал широкое разнообразие макросредств и структурированность программных идиом, включая конструкции высокого уровня для повторов, вызовов процедур и чередований (поэтому 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
Пример той же программы для MS-DOS на языке MASM версии 6.1 для процессора Intel 8086.
.model tiny
.code
.startup
mov dx, offset Hello
mov ah, 9
int 21h
.exit
Hello db 'Hello world!$'
end
История
[править | править код]В начале 1990-х годов альтернативные ассемблеры, вроде Borland TASM и свободного ассемблера NASM, начали отбирать часть доли рынка MASM. Однако, два события в конце 1990-х позволили MASM сохранить большую часть своей доли: сначала Microsoft прекратила продавать MASM как коммерческий продукт и начала распространять его бесплатно как часть DDK (англ. Device Driver Kit — набор для создания драйверов). Во-вторых, благодаря пакету MASM32 и обучающим программам Iczelion’а Win32 оказалось, что программирование на MASM возможно и в среде Microsoft Windows. В 2000 году MASM 6.15 был выпущен как часть пакета разработки 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), и дизассемблеры (включая IDA, интерактивный дизассемблер).
Версии 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. С версии 11 MASM снова выходит как независимый продукт, имеется 2 среды разработки обычный (qedit) и для юникода (uniedit).
Ссылки
[править | править код]Для улучшения этой статьи желательно:
|