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).
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.