Filename extension | .exe |
---|---|
Magic number | MZ or ZM |
Type of format | Binary, executable |
Extended to |
New Executable Linear Executable Portable Executable |
The MS-DOS MZ executable format is the executable file format used for .EXE files in MS-DOS.
The file can be identified by the ASCII string "MZ" (hexadecimal: 4D 5A) at the beginning of the file (the "magic number"). "MZ" are the initials of Mark Zbikowski, one of the developers of MS-DOS.
The MZ MS-DOS executable file is newer than the COM executable format and differs from it. The MS-DOS executable header contains relocation information, which allows multiple segments to be loaded at arbitrary memory addresses, and it supports executables larger than 64 KiB; however, the format still requires relatively low memory limits. These limits were later bypassed using MS-DOS extenders.
The environment of an EXE program run by MS-DOS is found in its Program Segment Prefix.
MZ MS-DOS executables can be run from MS-DOS and Windows 9x-based operating systems. 32-bit Windows NT-based operating systems can execute them using their built-in Virtual MS-DOS machine (although some graphics modes are unsupported). 64-bit versions of Windows cannot execute them. Alternative ways to run these executables include DOSBox, DOSEMU and Wine.
MZ MS-DOS executables can be created by linkers, like Digital Mars Optlink, MS linker, VALX or Open Watcom's WLINK; additionally, FASM can create them directly.