Microsoft Macro Assembler

Commonly known as just MASM, this is a macro assembler for 16-bit development of OS/2 and DOS software and drivers, that had some limited support for 32-bit code generation and MS Windows development. MASM version 5.1 was supplied with some versions of the IBM developer toolkit and the Device Driver Source Kit (DDK).

MASM is also an informal standard as an assembly language format.

History
Early versions of MASM were generic 8088, 8087 and 8086 assemblers and could generate code for any system based on these processors not just DOS, later versions also supported 80186, 80286, NEC V20 and so on.

IBM did however market the same product under the name IBM Macro Assembler that only supported the generation of DOS executables.

Version

 * 5.0 (1987)
 * 5.1 (1988) - was the first version with native OS/2 host support. The IBM ALP has a compatibility mode (M510) for MASM 5.1.
 * 5.1a (1989)
 * 5.1b


 * Prerequisites
 * Link386 or compatible linker for generating OS/2 32-bit files
 * 16-bit files can be handled by the supplied linker.

Known issues
As with other Microsoft tools that support both OS/2 and DOS environments you may run into problems if you try to use those tools on Microsoft Windows systems that support the running of OS/2 1.x programs (Windows NT and 2000), as the system tries to run the DOS executable as an OS/2 program and fails. Either make sure that only the DOS executables are installed or if they are already installed or you migrated the install by hand, precede every command with the FORCEDOS command.

License and status

 * Closed source commercial software
 * Author: Microsoft

Articles

 * Roger Orr: Hints for writing simple programs for both OS/2 and DOS

Publications

 * Charles Petzold: OS/2 Kernel Programming - Contains an example OS/2 16 bit MASM assembly program. - PC Magazine 1987
 * Ray Duncan: Power Programming with Microsoft Macro Assembler - Microsoft Press 1991, ISBN 1-55615-256-6

Links

 * Microsoft Macro Assembler (MASM) Unofficial Changelist