Microsoft Macro Assembler
Vývojář | Microsoft |
---|---|
Typ softwaru | programovací jazyk a x86 assembly language |
Web | www |
Některá data mohou pocházet z datové položky. |
Microsoft Macro Assembler (zkráceně MASM) je překladač pro rodinu mikroprocesorů x86. Původně byl vytvořen společností Microsoft pro vývoj jejich operačního systému MS-DOS a byl po dlouhou dobu nejpopulárnějším a nejvyužívanějším assemblerem dostupným pro tento operační systém. Podporoval používání maker a prvky strukturovaného programování jako jsou smyčky, volání procedur a alternací (proto je MASM označován jako vysokoúrovňový assembler).
Pozdější verze přidaly schopnost sestavit programy z MS-DOSu i pro operační systémy Microsoft Windows. MASM je jedním z mála vývojových nástrojů společnosti Microsoft (jiným je např. NMAKE), která v jedné verzi dokázaly vytvářet jak 16bitový, tak i 32bitový kód. Nejdříve podporoval aplikace jen pro MS-DOS, další verze (5.1 a 6.0) podporovaly též operační systém OS/2. Pozdější verze (6.1+) umožňovaly vytvářet aplikace pro Win32 konzoli, které bylo možné za pomoci Phar Lap TNT DOS extenderu provozovat i v prostředí MS-DOSu (kvůli chybě ve verzi 6.1 však nefungovaly ve finální verzi Windows NT).
Konkurence
Na začátku devadesátých let začaly alternativní assemblery jako např. Borland TASM, shareware assembler A86, a (ke konci 90. let) NASM, zabírat podíl na trhu, kde byl převážně MASM. Nicméně, dvě události v pozdních 90. letech umožnily MASMu udržet si většinu svého podílu na trhu: první, Microsoft přestal prodávat MASM jako komerční produkt a začal jej distribuovat "bezplatně" jako součást DDK (Driver Development Kit). Za druhé, objevil se balíček MASM32 a Iczelionovy tutorialy Win32, které daly Windowsovským aplikacím možnost programovat v MASM. Později v roce 2000, byl MASM 6.15 uvolněn jako součást procesorového balíku Visual C++, který byl bezplatný. Výsledkem bylo, že všechny verze Visual C++, pozdější než 6.0, zahrnovaly verzi MASM ekvivalentní k verzi Visual C++. Později, ve Visual C++ 2005, se objevila 64bitová verze MASM (souborové jméno bylo ml64.exe). Kombinace těchto událostí a fakt, že existovala široká základna uživatelů s instalovaným MASM, pomohly zpomalit úpadek MASM vůči jiným assemblerům. I dnes je MASM stále populární mezi assemblery na platformách Win32, navzdory konkurenci nových produktů, jako např. UASM, Asmc, POASM, NASM a Yasm, FASM, GoAsm, a HLA.
MASM verze
Ačkoliv MASM již není komerčním produktem, Microsoft stále pokračuje v jeho podpoře, kvůli široké základně assembly kódů, které existují a jsou využívány interně u samotného Microsoftu. Poslední verze MASM, která byla prodávána jako samostatný balíček, byla verze 6.11. Od chvíle kdy Microsoft přestal MASM samostatně prodávat, přidal několik aktualizací k produktové řadě MASM verze 6.x. Verze 6.15 byla obsažena v balíku Visual C++ 6.0 Processor Pack. Verze 7.0 byla obsažena ve Visual C++ .NET 2002. Verze 7.1 byla obsažena ve Visual C++ .NET 2003. Verze 8.0 byla pak obsažena ve Visual C++ 2005, která také obsahovala verzi, jež mohla kompilovat kód x64. Ve 64bitovém kódu ale nefungují příkazy invoke, .if, .repeat a .while.
Některé z novějších verzí MASM jsou také obsaženy v různých SDK a DDK společnosti Microsoft. Do budoucna vše nasvědčuje tomu, že další verze MASM budou dodávány s budoucími verzemi Visual C++. Navzdory tomu, že MASM je dnes k dispozici legálně a "bezplatně", je nutné mít na paměti, že se stále ještě jedná o komerční produkt, a všechny tyto "bezplatné" verze mají jistá omezení použití, která je nutno respektovat.
Kromě toho existují i balíčky vyráběné nadšenci, které obsahují kolem MASM celý ekosystém, jako jsou editory, debuggery, linkery, hlavičkové soubory, příklady zdrojových kódů. Často jsou šířeny po internetu svými autory. Microsoft proti těmto autorům nikdy nezasáhl.
Související články
Externí odkazy
Média použitá na této stránce
Autor: Christophe Lenclud, Licence: CC BY-SA 4.0
An integer signedness bug in the stack setup code emitted by the Pascal compiler prevented Microsoft / IBM MACRO Assembler Version 1.00 (MASM), a DOS program from 1981, and many other programs compiled with the same compiler, to run under some configurations with more than 512 KB of memory. See https://slions.net/threads/debugging-ibm-macro-assembler-version-1-00.33/ for details.