MASM

Microsoft Macro Assembler
Sorts Kompilator
Författare Microsoft
Utvecklare Microsoft
Operativ system MS-DOS , Windows
Gränssnittsspråk ryska, engelska osv.
Första upplagan 1981
senaste versionen 14.16.27023.1 ( 7 mars 2017 )
stat aktiva
Licens Microsoft EULA
Hemsida microsoft.com/en-us/down...

MASM (Microsoft Macro Assembler) är en assembler för x86- processorer . Den producerades ursprungligen av Microsoft för att skriva program i operativsystemet MS-DOS och var under en tid den mest populära assembler som fanns tillgänglig för den. MASM stödde ett brett utbud av makrofaciliteter och strukturerade programmeringsidiom, inklusive högnivåkonstruktioner för upprepningar, proceduranrop och alternationer (vilket är anledningen till att MASM är en högnivåmontör). Senare[ när? ] lade till möjligheten att skriva program för Windows . MASM är ett av de få Microsofts utvecklingsverktyg som inte hade separata 16-bitars och 32-bitarsversioner.

Programexempel

Hello World- program på MASM32 som skriver ut detta meddelande och avslutar.

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

Ett exempel på samma program i MASM version 4.0 för Intel 8086-processorn .

inkludera io.asm datasegment x db ' Hej världen ! _ ' , ' $ ' data slutar stack segment stack db 128 dup ( ? ) stack slutar kod segment antag cs : kod , ds : data , ss : stack start : mov ax , data mov ds , ax lea dx , x outstr slutkod slutar slutstart _

Ett exempel på samma program för MS-DOS i MASM version 6.1 för Intel 8086-processorn .

.model tiny .code .startup mov dx , offset Hej mov ah , 9 int 21 h .exit Hej db ' Hello world ! $ ' slut

Historik

I början av 1990-talet började alternativa montörer som Borlands TASM och frimontören NASM ta en del av MASM:s marknadsandelar . Två händelser i slutet av 1990-talet gjorde det dock möjligt för MASM att behålla större delen av sin andel: för det första slutade Microsoft att sälja MASM som en kommersiell produkt och började distribuera den gratis som en del av DDK ( Eng.  Device Driver Kit  - en uppsättning för att skapa drivrutiner ). För det andra, tack vare MASM32-paketet och Iczelions Win32-tutorials, visade det sig att programmering i MASM också är möjligt i en Microsoft Windows- miljö . År 2000 släpptes MASM 6.15 som en del av Visual C++ Development Kit och alla versioner av Visual C++ efter 6.0 inkluderade en version av MASM lika med Visual C++. Senare introducerade Visual C++ 2005 en 64-bitarsversion av MASM. Tillsammans med den stora gruppen av MASM-programmerare hjälpte dessa utvecklingar till att hejda nedgången i popularitet för MASM jämfört med andra montörer. Idag fortsätter MASM att användas på Win32-plattformen trots konkurrens från nyare produkter som NASM , fasm , TASM , HLASM .

Projekt som stöder MASM

Det finns många nya programvaruutvecklingsprojekt som stöder MASM, inklusive IDE :er (som RadASM ), debuggers (som OllyDbg) och disassemblers (inklusive IDA , en interaktiv demonterare).

MASM-versioner

Även om MASM inte längre är en kommersiell produkt, fortsätter Microsoft att behålla källkoden som används i andra Microsoft-produkter. Sedan Microsoft slutade sälja MASM separat har det skett flera uppdateringar av MASM 6.x produktionslinje (den senaste uppdateringen är version 6.15, som ingick i Visual C++ 6.0), och efter det, MASM 7.0 som en del av Visual C++ .NET 2002, MASM 7.1 i Visual C++ .NET 2003, MASM 8.0 i Visual C++ 2005 och MASM 9.0 i Visual C++ 2008 som stöder x64- plattformen . Sedan version 11 släpps MASM återigen som en oberoende produkt, det finns 2 utvecklingsmiljöer: normal (qedit) och unicode (uniedit).

Länkar