WikiDer > Исполняемый файл 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 или же Откройте WatcomWLINK; Кроме того, 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 ».

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