ForMicrosoftWindows,OS/2,andDOS,.exeis thefilename extensionthat denotes a file as beingexecutable– acomputer program– containing anentry point.[1]

Windows Executable File
Filename extension
.exe
Internet media type
application/vnd.microsoft.portable-executable
Magic number0x4d 0x5a
Developed byMicrosoft
Type of formatExecutable file
Container forMZ,NE,LX, LE,PE,PE32+, W3, W4, DL, MP, P2, P3
Open format?No

In addition to being executable (adjective) such a file is often called an executable (noun) which is sometimes abbreviated as EXE.

File formats

edit

Thefile formatof an EXE file varies by operating system version.

An operating system cannot use an EXE file unless it is formatted for it. Note that some formats support multiple operating systems.

16-bitDOS MZ executable(MZ)
The original DOS executable file format. These formats can be identified by the letters "MZ" at the beginning of the file in ASCII. Later formats may contain an MZDOS stubheader.[2]
16-bitNew Executable(NE)
Introduced with the multitaskingMS-DOS 4.0and also used by 16-bitOS/2and Windows, NE can be identified by the "NE" in ASCII.

OS/2

edit

32-bit Linear Executable (LX)
Introduced with OS/2 2.0, these can be identified by the "LX" in ASCII. These can only be run by OS/2 2.0 and higher.[3]
Mixed 16/32-bit Linear Executable (LE)
Introduced with OS/2 2.0, these can be identified by the "LE" in ASCII.VxDdrivers onWindows 3.x,OS/2,andWindows 9xalso use LE format.

Windows

edit

32-bitPortable Executable(PE)
Introduced withWindows NT,they arefat binariesconsisting of a DOS-specific and a Windows-specific part. The DOS-specific part (dubbedDOS stub) is a legitimate 16-bit DOS program. Microsoft C++ linker, by default, uses a minimal DOS stub that prints the following message: "This program cannot be run in DOS mode."[2][4][5]Windows ignores the DOS stub and executes the Windows-specific portion that starts with the "PE\0\0" ASCII sequence (letters "PE" and two null bytes).[2]With some linkers, it is possible to specify a custom DOS stub.[2][4][6]Indeed, there are a few dual programs, such asregeditinWindows 95[7]and old versions ofWinZIPself extractors.
64-bit Portable Executable (PE32+)
Introduced by 64-bit versions of Windows, this is a PE file with wider fields. In most cases, code can be written to simply work as either a 32 or 64-bit PE file.[8]This file also includes a DOS stub.[6]

Other

edit

There are other EXE formats, including but not limited toW3(a collection of LE files, only used in WIN386.EXE),W4(a compressed collection of LE files, only used in VMM32.VXD),DL,MP,P2,P3(last three used byPhar Lapextenders).[9]

See also

edit

References

edit
  1. ^".EXE File Extension".FileInfo - The File Extensions Database.Sharpened Productions.Retrieved2019-08-16.
  2. ^abcd"PE Format".Windows App Development.Microsoft. 2019-08-25.
  3. ^"OS/2 Operating System".operating system documentation project.2004-04-03.Retrieved2014-02-13.
  4. ^ab"/STUB (MS-DOS Stub File Name)".C/C++ Building Reference(Visual Studio 2022 ed.).Microsoft.Retrieved2014-01-10.
  5. ^Sedory, Daniel B. (2004-10-12)."DOS Stub Program".The Starman's Realm.Self-published.Retrieved2014-01-10.
  6. ^abEllermann, Frank (2014-01-22)."dostub.exe".Purl.net.Retrieved2014-01-24.
  7. ^"Using Registry Editor in Real Mode".Support.Microsoft.2006-11-15. Archived fromthe originalon 2014-01-15.Retrieved2014-01-10.Windows 95 includes a Registry Editor program (Regedit.exe) that runs in both the real-mode MS-DOS environment and in the protected-mode Windows environment. When you need to modify the registry without starting Windows 95, use Registry Editor in real mode. Note that the switches listed in this article only work in real-mode.
  8. ^Pietrek, Matt(February 2002)."An In-Depth Look into the Win32 Portable Executable File Format".MSDN Magazine.Microsoft.
  9. ^Brown, Ralf (2000-07-16)."Int 21/AH=4Bh".Ralf Brown's Interrupt List.Retrieved2018-10-30.

Further reading

edit
edit