Microsoft Macro Assembler: Difference between revisions
m →Version |
mNo edit summary |
||
Line 1: | Line 1: | ||
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 32bit code generation and MS Windows development. Came supplied for free with some versions of the IBM developer toolkit and the Diver Development Toolkit (DDK). | [[Image:Masm.jpg|200px|right]]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 32bit code generation and MS Windows development. Came supplied for free with some versions of the IBM developer toolkit and the Diver Development Toolkit (DDK). | ||
MASM is also an informal standard as an assembly language format. | MASM is also an informal standard as an assembly language format. |
Revision as of 09:59, 28 October 2015

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 32bit code generation and MS Windows development. Came supplied for free with some versions of the IBM developer toolkit and the Diver Development Toolkit (DDK).
MASM is also an informal standard as an assembly language format.
IBM Macro Assembler
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, and later MASM 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.
IBM Macro Assembler/2
IBM version of the Microsoft Macro Assembler specifically modified to support OS/2 as well as DOS, as it is based on MASM 4x it lacks some things introduced with MASM 5 such as Simplified Segment Directives, thus it pre-dates and differs slightly from the Microsoft version 5.1 that was the first OS/2 capable MASM from Microsoft, it was replaced by the IBM ALP Assembler in the mid 90's.
Add-ons and fixes
- The masm4os2 package contains a version of DOSXNT.EXE that makes the MASM 6.11d package compatible with OS/2.
Version
- Version 6.11 can be patched to support OS/2 (See above), it is also the last DOS compatible version of MASM, 6.12 and later were windows console executables.
- Version 6.1 was the first version to support Windows PE executables.
- Latest Version: 6.0b - Last version that supports OS/2 fully, can generate flat 32bit code for OS/2, DOS (using a supplied DOS extender) and Windows. See Publications below.
- Version 6.0 introduced in April 1989, added high level language constructs such as IF, WHILE and REPEAT alongside some further loop controls, also the first MASM version to support LR offsets, fully flat 32 bit memory and the full Intel 80486 instruction set. The engine had also been re-written so it now performed all passes in memory rather than off disk and supports DPMI memory management, but no longer runs in severely memory constrained DOS systems. Version 6 also added some automatic memory range fixes.
- Version 5.11 is often used as a reference and is what came with the old OS/2 1.x toolkits. The IBM ALP Assembler has a compatibility mode for MASM 5.11.
- Version 5.1 was the first version with native OS/2 support.
- IBM Macro Assembler/2 v1 for OS/2 introduced in 1987.
- IBM Macro Assembler Version 3 was the last IBM branded MASM for DOS.
Prerequisites
- Link386 or compatible linker for generating OS/2 32 bit files, 16 bit files can be handled by the supplied linker.
Links
License and status
- Closed source commercial software. - Discontinued.
Author
Publications
Local articles
Related Articles
- Creating 32-Bit Flat Memory Model MASM Code for OS/2 2.0 by Microsoft
- Charles Petzold: OS/2 Kernel Programming - Contains an example OS/2 16 bit MASM assembly program. - From PC Magazine - 1987.