Developer(s)Microsoft, IBM, DR, Datalight, Novell, PhysTechSoft & Paragon Technology Systems, The FreeDOS team
Initial releaseMay 1982; 41 years ago (1982-05)
Written inMS-DOS: x86 assembly language
FreeDOS: C
Operating systemMS-DOS, PC DOS, DR DOS, ROM-DOS, PTS-DOS, FreeDOS, Windows
LicenseMS-DOS: MIT
FreeDOS: Sybase Open Watcom Public License

The command-line tool exe2bin is a post-compilation utility program available on MS-DOS and other operating systems.[1][2]



Early compilers and linkers for the MS-DOS platform could not produce a COM file executable directly. Instead, the compilers would output an EXE-format file with relocation information. If all 8086 segments were set to be identical in such an EXE file (i.e. the "tiny" memory model was used), then exe2bin could convert it to a COM file.[3] exe2bin could also be used to convert compiled code to make it suitable to be embedded in ROM as part of BIOS or a device driver.


The command was included in MS/DOS versions 1 thru 3.1 as part of a standard distribution. For version 3.2, among the changes were the version included did not permit itself to run on any version except 3.2.[4] For the next version, 3.3, there was no EXE2BIN on the DOS disk. "Instead, IBM sells the program separately, at an extra cost, with the DOS Technical Reference." IBM also added code to check the version. PC Magazine published a workaround: just patch it[5] to work with 3.2 or higher.

One way or the other, it was no longer available for the base price after 3.2; for version 6 it was on what was called the Supplemental Disk.[6] The program was also distributed with many language compilers for MS-DOS in the 1980s, and included with certain versions of IBM PC DOS.

PhysTechSoft & Paragon Technology Systems PTS-DOS,[7] Digital Research DR DOS 6.0,[8] and Datalight ROM-DOS,[9] also include an implementation of the exe2bin command.

The command is also available in FreeDOS. This implementation is licensed under the Sybase Open Watcom Public License.[10]

Windows XP and later versions include exe2bin and other 16-bit commands (nonnative) for the MS-DOS subsystem to maintain MS-DOS compatibility. The 16-bit MS-DOS subsystem commands are not available on 64-bit editions of Windows.[11]

See also


  1. ^ Paterson, Tim (2013-12-19) [1983]. "Microsoft DOS V1.1 and V2.0: /msdos/v20source/EXE2BIN.ASM". Computer History Museum, Microsoft. Retrieved 2015-10-01.
  2. ^ Shustek, Len (2014-03-24). "Microsoft MS-DOS early source code". Software Gems: The Computer History Museum Historical Source Code Series. Retrieved 2015-10-01.
  3. ^ The New Peter Norton Programmer's Guide to the IBM PC & PS/2 by Peter Norton and Richard Wilton (Microsoft Press, 1987) ISBN 1-55615-131-4, p.425
  4. ^ Asael Dror (January 12, 1988). "Thank You, IBM". PC Magazine. p. 366.
  5. ^ DEBUG .. E 30D 73 (from a compare/JZ to compare/JNB = greater than OR EQUAL TO 3.2)
  6. ^ Wolverton, Van (2003). Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition. Microsoft Press. ISBN 0-7356-1812-7.
  7. ^ "PTS-DOS 2000 Pro User Manual" (PDF). Buggingen, Germany: Paragon Technology GmbH. 1999. Archived (PDF) from the original on 2018-05-12. Retrieved 2018-05-12.
  8. ^ DR DOS 6.0 User Guide Optimisation and Configuration Tips, 4corn.co.uk
  9. ^ "Datalight ROM-DOS User's Guide" (PDF). Datalight.com.
  10. ^ "ibiblio.org FreeDOS Group -- FreeDOS Base". Ibiblio.org. Retrieved 8 November 2021.
  11. ^ "MS-DOS subsystem commands". Docs.microsoft.com. 11 September 2009. Retrieved 8 November 2021.

Further reading