Microsoft Macro Assembler (MASM) version history

MACRO-86 (1981)
        original product
        includes M86 (predecessor of MASM), LINK, LIB and CREF
1.00  (1981)
        first version of MASM
1.00  (1981) - IBM version
1.10  (1982)
        8087 instruction support
        DOS 2.0 support (file handles)
1.25  (1983)
        8087 emulation support
1.27  (1984)
        minor bug fixes
2.00  (1984) - IBM version
        186, 286 and 287 instruction support
3.00  (1984)
        286 protected-mode instruction support
        added MAKE, SYMDEB and MAPSYM
3.01  (1985)
        minor updates to SYMDEB and MAPSYM only
4.00  (1985)
        added EXEMOD and EXEPACK
5.00  (1987)
        386 and 387 instruction support
        simplified segment directives
        multiple memory model support
        communal variables
        use of MASM, INCLUDE and TMP environment variables
        command line help
        added CodeView (CV) (replacing SYMDEB and MAPSYM) and CVPACK
MASM/2 (1987) - IBM version
        OS/2 specific version based upon MASM 4.00
        includes bound versions of MASM, LINK, LIB, CREF, MAKE and EXEMOD
        includes DOS (CV) and OS/2 (CVP) versions of CodeView
5.10  (1988)
        local labels (@@, @B, @F)
        macro string functions (CATSTR, INSTR, SIZESTR, SUBSTR)
        OS/2 support
        added BIND, EXEHDR and IMPLIB
5.10A (1989)
        minor bug fixes
5.10B (1989)
        included with the Windows 3.1 DDK
6.00  (1991)
        ML instead of MASM
        added MASM compatibility driver
        486 instruction support
        multi-pass assembly
        FLAT memory model support
        TINY model support (.COM files)
        better macro processing
        automatic conditional jump lengthening
        high-level language function prototypes and calls (INVOKE and PROTO)
        added NMAKE (replacing MAKE) and H2INC
	added QuickHelp (QH)
	added Programmer's Workbench (PWB)
        dropped CREF, EXEMOD and EXEPACK
6.00B (1992)
        minor bug fixes
        last version to have a pure DOS executable
6.10  (1992)
        COFF support
        Windows support
        uses the DOSXNT DOS extender (DOS/Windows executable)
        dropped OS/2 support, BIND and CVP
6.10a (1992)
        distributed as a patch
        minor bug fixes
6.11  (1993)
        Pentium instruction support
        last retail version
6.11a (1994)
        distributed as a patch
        minor bug fixes
6.11c (1994)
        included with the Windows 95 and NT 3.5 DDKs
        minor bug fixes
6.11d (1995)
        distributed as a patch
        minor bug fixes
        last DOS version
6.12  (1997)
        distributed as a patch
        Pentium Pro and MMX instruction support
6.13  (1997)
        distributed as a patch
        AMD K3D instruction support
6.14  (1999)
        distributed as a patch
        SSE instruction support
6.15  (2000)
        included with Visual Studio 6.0 Processor Pack
        SSE2 instruction support
7.00  (2002)
        included with Visual Studio .NET 2002
        COFF is the default object format
        ML.ERR removed, message text incorporated in ML.EXE
7.10  (2003)
        included with Visual Studio .NET 2003
8.00  (2005)
        included with Visual Studio 2005
        SSE3 instruction support
        ML64 executable added
9.00  (2008)
        included with Visual Studio 2008
        SSSE3, SSE4.1 and SSE4.2 instruction support
10.00 (2010)
        included with Visual Studio 2010
        AVX instruction support
        x64 instruction support
        dropped 16-bit assembly support


MASM directives:
=
.186            2.0
.286            5.0
.286c           2.0
.286p           3.0
.287            2.0
.386            5.0
.386c           5.0
.386p           5.0
.387            5.0
.486            6.0
.486p           6.0
.586            6.11
.586p           6.11
.686            6.12
.686p           6.12
.8086           2.0
.8087           2.0
alias           6.11
align           5.0
.alpha          5.0
assume
byte            5.0
catstr          5.1
.code           5.0
comm            5.0
comment
.const          5.0
.cref
.data           5.0
.data?          5.0
db
dd
df              5.0
dosseg          5.0
.dosseg         6.0
dq
dt
dw
dword           5.0
echo            6.0
else
elseif          5.1
elseif1         5.1
elseif2         5.1
elseifb         5.1
elseife         5.1
elseifdef       5.1
elseifdif       5.1
elseifdifi      5.1
elseifidn       5.1
elseifidni      5.1
end
endif
endm
endp
ends
equ
.err            4.0
.err1           4.0
.err2           4.0
.errb           4.0
.errdef         4.0
.errdif         4.0
.errdifi        5.0
.erre           4.0
.erridn         4.0
.erridni        5.0
.errnb          4.0
.errndef        4.0
.errnz          4.0
even
.exit           6.0
exitm
extern          6.0
externdef       6.0
extrn
.fardata        5.0
.fardata?       5.0
for             6.0
forc            6.0
fword           5.0
goto            6.0
group
if
if1
if2
ifb
ifdef
ifdif
ifdifi          5.0
ife
ifidn
ifidni          5.0
ifnb
ifndef
include
includelib      6.0
instr           5.1
invoke          6.0
irp
irpc
.k3d            6.13
label
.lall
.lfcond
.list
.listall        6.0
.listif         6.0
.listmacro      6.0
.listmacroall   6.0
local
macro
.mmx            6.12
.model          5.0
.msfloat        5.0
name
.no87           6.0
.nocref         6.0
.nolist         6.0
.nolistif       6.0
.nolistmacro    6.0
option          6.0
org
%out
oword           6.14
page
popcontext      6.0
proc
proto           6.0
public
purge
pushcontext     6.0
qword           5.0
.radix
real4           6.0
real8           6.0
real10          6.0
record
repeat          6.0
rept
.sall
sbyte           6.0
sdword          6.0
segment
.seq            5.0
.sfcond
sizestr         5.1
.stack          5.0
.startup        6.0
struc
struct          6.0
substr          5.1
subtitle        6.0
subttl
sword           6.0
tbyte           5.0
textequ         6.0
.tfcond
title
typedef         6.0
union           6.0
while           6.0
word            5.0
.xall
.xcref
.xlist
.xmm            6.14

MASM operators:
+
-
*
/
.
[]
and
dup
eq
ge
gt
high
highword        6.0
le
length
lengthof        6.0
low
lowword         6.0
lroffset        6.0
lt
mask
mod
ne
not
offset
opattr          6.0
or
ptr
seg
shl
short
shr
size
sizeof          6.0
this
type
.type
width
xor

MASM types:
abs (extrn)
byte
dword
far
fword           5.0
near
oword           6.14
qword
real4           6.0
real8           6.0
real10          6.0
sbyte           6.0
sdword          6.0
sword           6.0
tbyte
word

MASM predefined symbols:
@catstr         6.0
@code           5.0
@codesize       5.0
@cpu            5.1
@curseg         5.0
@data           5.0
@datasize       5.0
@date           6.0
@environ        6.0
@fardata        5.0
@fardata?       5.0
@filecur        6.0
@filename       5.0
@instr          6.0
@interface      6.0
@line           6.0
@model          6.0
@sizestr        6.0
@stack          6.0
@substr         6.0
@time           6.0
@version        5.1
@wordsize       5.1

MASM segment parameters:
at (combine)
byte (align)
common (combine)
dword (align)
flat (use)          6.0
memory (combine)
page (align)
para (align)
private (combine)   6.0
public (combine)
readonly            6.0
stack (combine)
use16 (use)         5.0
use32 (use)         5.0
word (align)