Исполняемый файл DOS MZ - DOS MZ executable

Исполняемый файл DOS MZ
Расширение имени файла
Магическое числоМЗ или ЗМ
Тип форматаДвоичный, исполняемый файл
Расширен доНовый исполняемый файл
Линейный исполняемый файл
Переносимый исполняемый файл

В Исполняемый файл DOS MZ формат - это исполняемый файл формат файла используется для .EXE файлы в ДОС.

Файл можно определить по значку ASCII строка "MZ" (шестнадцатеричный: 4D 5A) в начале файла (знак "магическое число ")." MZ "- это инициалы Марк Збиковски, один из ведущих разработчиков MS-DOS.[1]

Исполняемый файл MZ DOS новее, чем Исполняемый формат COM и отличается от него. Исполняемый файл DOS заголовок содержит переезд информация, которая позволяет загружать несколько сегментов по произвольным адресам памяти и поддерживает исполняемые файлы размером более 64 КБ; однако формат по-прежнему требует относительно небольших ограничений памяти. Эти ограничения позже были обойдены с помощью Расширители DOS.

Среда EXE-программы, запускаемой DOS, находится в ее Префикс сегмента программы.

EXE-файлы обычно имеют отдельные сегменты для кода, данных и стека. Выполнение программы начинается с адреса 0 сегмента кода, и регистр указателя стека устанавливается на любое значение, содержащееся в информации заголовка (таким образом, если заголовок определяет стек размером 512 байт, указатель стека устанавливается на 200h). Можно не использовать отдельный сегмент стека и при желании просто использовать сегмент кода для стека.

Регистр DS (сегмент данных) обычно содержит то же значение, что и регистр CS (сегмент кода), и не загружается с фактическим адресом сегмента сегмента данных при инициализации EXE-файла; Программисту необходимо установить его самостоятельно, как правило, с помощью следующих инструкций:

    MOV ТОПОР, @ДАННЫЕ    MOV DS, ТОПОР

В исходном API DOS 1.x было также необходимо, чтобы регистр DS указывал на сегмент с PSP при завершении программы; это было сделано с помощью следующих инструкций:

    ТОЛКАТЬ DS    XOR ТОПОР, ТОПОР    ТОЛКАТЬ ТОПОР

Завершение программы затем будет выполнено инструкцией RETF, которая извлечет исходный адрес сегмента с PSP из стека, а затем перейдет к адресу 0, который содержит инструкцию INT 20h.

API DOS 2.x представил новую функцию завершения программы, INT 21h Function 4Ch, которая не требует сохранения адреса сегмента PSP в начале программы, и Microsoft не рекомендовала использовать старый метод DOS 1.x.

Совместимость

Исполняемые файлы MZ DOS можно запускать из DOS и Windows 9x операционные системы на базе. 32-битный Windows NT операционные системы могут выполнять их, используя свои встроенные Виртуальная машина DOS (хотя некоторые графические режимы не поддерживаются). 64-битные версии Windows не могут их выполнять. Альтернативные способы запуска этих исполняемых файлов включают DOSBox, ДОСЕМУ, Вино, и Cygwin.

Исполняемые файлы MZ DOS могут быть созданы компоновщиками, например Цифровой Марс Optlink, Компоновщик MS, VALX или же Откройте Watcom WLINK; Кроме того, FASM может создавать их напрямую.

Смотрите также

дальнейшее чтение

  • Пол, Маттиас Р. (2002-10-07) [2000]. "Re: запустить COM-файл". Группа новостейalt.msdos.programmer. В архиве из оригинала от 03.09.2017. Получено 2017-09-03.
  • [1]

Рекомендации

  1. ^ Внутри Windows: подробный анализ формата переносимых исполняемых файлов Win32 - журнал MSDN, февраль 2002 г.. «Каждый PE-файл начинается с небольшого исполняемого файла MS-DOS ... Первые байты PE-файла начинаются с традиционного заголовка MS-DOS, называемого IMAGE_DOS_HEADER. Единственными двумя важными значениями являются e_magic и e_lfanew ... . В поле e_magic (СЛОВО) должно быть установлено значение 0x5A4D. ... В представлении ASCII 0x5A4D - это MZ, инициалы Марка Збиковски, одного из первых архитекторов MS-DOS ».

внешняя ссылка