*** Welcome to piglix ***

Microsoft Macro Assembler

Microsoft Macro Assembler
Developer(s) Microsoft
Initial release 1981; 36 years ago (1981)
Stable release
14.00.23506.0 / November 6, 2015; 16 months ago (2015-11-06)
Operating system Microsoft Windows and MS-DOS
Type Assembler
License Microsoft EULA
Website https://msdn.microsoft.com/en-us/library/afzk3475.aspx

The Microsoft Macro Assembler (MASM) is an x86 assembler that uses the Intel syntax for MS-DOS and Microsoft Windows. Beginning with MASM 8.0 there are two versions of the assembler - one for 16-bit and 32-bit assembly sources, and another (ML64) for 64-bit sources only.

MASM is maintained by Microsoft, but since version 6.12 has not been sold as a separate product, it is instead supplied with various Microsoft SDKs and C compilers. Recent versions of MASM are included with Microsoft Visual Studio.

The earliest versions of MASM date back to 1981 .

Early versions of MASM were sold either as a generic "Microsoft Macro Assembler" for all x86 machines and the OEM version produced specifically for IBM PCs. By Version 4.0, the IBM release was dropped. Up to Version 3.0, MASM was also bundled with a smaller companion assembler, ASM.EXE. This was intended for PCs with only 64k of memory and lacked some features of the full MASM such as the ability to use code macros.

DOS versions up to 4.x included Microsoft's LINK utility which was designed to convert intermediate OBJ files generated by MASM and other compilers, but as users who did not do programming had no use of LINK, it was moved to their compiler packages.

Version 4.0 added support for 286 instructions and also shorthand mnemonics for segment descriptors (.code, .data, etc.). Version 5.0 supported 386 instructions, but could still only generate real mode executables.

Up to version 5.0, MASM was available as an MS-DOS application only. Versions 5.1 and 6.0 were available as both MS-DOS and OS/2 applications.

Version 6.0, released in 1992, added parameter passing with "invoke" and some other high level-like constructs, in addition to the already existing high level-like records, among other things. By the end of the year, version 6.1A updated the memory management to be compatible with code produced by Visual C++. In 1993 full support for protected mode 32-bit applications and the Pentium instruction set was added. The MASM binary at that time was shipped as a "bi-modal" DOS-extended binary (using the Phar Lap TNT DOS extender).


...
Wikipedia

...