DOS MZ可执行文件(英語:)格式是DOS中的.EXE可执行文件格式。

本文介绍了DOSMZ可执行文件格式,它是DOS中的.EXE格式,由MS-DOS开发者MarkZbikowski命名。它支持更大文件和重定位,可在多种操作系统上运行,包括Windows模拟器。链接器如DigitalMarsOptlink等可以生成此类文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOS MZ可执行文件

DOS MZ可执行文件(英語:)格式是DOS中的.EXE可执行文件格式。

该文件在文件头部ASCII字符串“MZ”(十六进制:4D 5A)标识。“MZ”是MS-DOS开发者之一的马克·茨柏克沃斯基(Mark Zbikowski)的姓名首字母缩写。

DOS MZ可执行文件比COM可执行文件格式更晚出现,并与其有一定差别。DOS可执行文件头部包含了重定位信息,使得多个段能被载入到任意内存地址中,并且支持大于64KB的可执行文件;然而该格式仍然要求相对低的内存限制。这些限制后来通过使用DOS扩展器得以绕过。

DOS EXE程序的执行环境可以在其程序段前缀中找到。

兼容性

MZ DOS可执行文件可在DOS和基于Windows 9x的操作系统中运行。基于Windows NT的32位系统也可以使用内置的DOS虚拟机运行(尽管一些图形模式是不支持的)。64位版本的Windows无法原生运行。替代方法是运行这些模拟器程序,例如DOSBox、DOSEMU和Wine

MZ DOS可执行文件可由链接器生成,如Digital Mars Optlink、微软链接器、VALX或Open Watcom的WLINK。另外FASM可以直接创建它们。

DOS EXE 開頭格式說明

  • 00-01h:MZ标志,MS-DOS开发者之一的馬克·茨柏克沃斯基(Mark Zbikowski)的姓名首字母缩写。
  • 02-03h:EXE文件最后一个块没有全用完只用了N个字节,即文件长度除以512的余数。
  • 04-05h:EXE文件使用的的数量(每块512个字节),文件长度除以512的商
  • 06-07h:重定向项目的个数。
  • 08-09h:该处数据指出了EXE头部大小,一般来说,EXE头部之后紧跟着程序数据。
  • 0A-0Bh:该处数据指出了运行该程序所需的最小内存,如果小于这个内存,程序将不会被加载执行。
  • 0C-0Dh:该处数据指出了运行该程序所需的最大内存,一般为FFFFh。
  • 0E-0Fh:堆栈段在装入模块中的偏移,如:00E5h
  • 10-11h:SP初始值,如:0080h。即SS:SP=00E5:0080。
  • 14-15h:IP初始值。
  • 16-17h:CS在装入模块中的偏移。
  • 18-19h:指出了第一个重定向项目在文件中的偏移,
  • 1A-1Bh:覆盖号(程序驻留为零)。
  • 1C:重定位表,起点由偏移18-19h给出,项数由06-07h标明。

参见

参考资料

  1.  Inside Windows: An In-Depth Look into the Win32 Portable Executable File Format - MSDN Magazine, February 2002 (页面存档备份,存于).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40191861_zj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值