Jump to content

Microsoft Macro Assembler: Difference between revisions

From EDM2
mNo edit summary
Ak120 (talk | contribs)
 
(25 intermediate revisions by 2 users not shown)
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).
'''Microsoft Macro Assembler''' (''MASM'')  


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 Macro Assembler====
[[IBM]] did however market the same product under the name [[IBM Macro Assembler]] that only supported the generation of DOS executables.
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.  


====Add-ons and fixes====
The macro assembler for 16-bit development of OS/2 and DOS software and drivers, that had 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).
* The [http://hobbes.nmsu.edu/h-search.php?key=masm4os2&pushbutton=Search masm4os2] package contains a version of DOSXNT.EXE that makes the MASM 6.11d package compatible with OS/2.


==Version==
==Features==
* 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.
* CREF - cross-reference utility
* Version 6.1 was the first version to support Windows PE executables.
* EXEHDR - Microsoft EXE file header utility
* '''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|Publications]] below.
* EXEMOD
* 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.
* EXEPACK - Microsoft EXE file compression utility
* Version 5.1 was the first version with native OS/2 support.
* LIB - library manager
* IBM Macro Assembler Version 3 was the last IBM branded MASM
* LINK - object code linker
* MAKE - program maintenance utility
* MAPSYM
* SYMDEB - interactive symbolic debugger


====Prerequisites====
==Releases==
* [[Link386]] or compatible linker for generating OS/2 32 bit files, 16 bit files can be handled by the supplied linker.
;The Microsoft MACRO Assembler
==Links==
* 1.00 (1981)
* [http://www.os2site.com/sw/dev/asm/index.html MASM 6.0]
* 1.06 (1982)
* 1.10 (1982) - support for Intel 8087 opcodes
* 1.25 (1983) - floating point emulation support
* 1.27 (1984)
 
;Microsoft MACRO Assembler
* 3.00 (1984) - support for Intel 80286 protected-mode instruction set
* 3.01 (1985) - MAPSYM and SYMDEB changes
 
;Microsoft Macro Assembler
* 4.0 (1986) - support for 286/287 instruction set
 
* 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 (1992)
 
;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==
==License and status==
* Discontinued - Closed source commercial software.
* Closed source commercial software
* Author: [[Microsoft]]


==Author==
==Articles==
* [[Microsoft]]
* Roger Orr: [[Hints for writing simple programs for both OS/2 and DOS]]


==Publications==
==Publications==
==Related Articles==
* Charles Petzold: [http://books.google.com/books?id=x1yigTsvZxsC&pg=PA483 OS/2 Kernel Programming] - Contains an example OS/2 16-bit MASM assembly program. - PC Magazine 1987
* [http://support.microsoft.com/KB/94577 Creating 32-Bit Flat Memory Model MASM Code for OS/2 2.0] by Microsoft
* Ray Duncan: ''Power Programming with Microsoft Macro Assembler'' - Microsoft Press 1991, ISBN 1-55615-256-6
* Charles Petzold: [https://books.google.co.uk/books?id=x1yigTsvZxsC&pg=PA483 OS/2 Kernel Programming] - Contains an example OS/2 16 bit MASM assembly program. - From PC Magazine - 1987.
 
==Links==
* [http://bytepointer.com/masm/index.htm Microsoft Macro Assembler (MASM) Unofficial Changelist]


[[Category:Tools]] [[Category:DOS Tools]] [[Category:MS Windows Tools]] [[Category:Assembly]]
[[Category:Assembler]]

Latest revision as of 19:35, 5 June 2021

Microsoft Macro Assembler (MASM)

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.

The macro assembler for 16-bit development of OS/2 and DOS software and drivers, that had 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).

Features

  • CREF - cross-reference utility
  • EXEHDR - Microsoft EXE file header utility
  • EXEMOD
  • EXEPACK - Microsoft EXE file compression utility
  • LIB - library manager
  • LINK - object code linker
  • MAKE - program maintenance utility
  • MAPSYM
  • SYMDEB - interactive symbolic debugger

Releases

The Microsoft MACRO Assembler
  • 1.00 (1981)
  • 1.06 (1982)
  • 1.10 (1982) - support for Intel 8087 opcodes
  • 1.25 (1983) - floating point emulation support
  • 1.27 (1984)
Microsoft MACRO Assembler
  • 3.00 (1984) - support for Intel 80286 protected-mode instruction set
  • 3.01 (1985) - MAPSYM and SYMDEB changes
Microsoft Macro Assembler
  • 4.0 (1986) - support for 286/287 instruction set
  • 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 (1992)
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

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