Исполняемый файл DOS MZ - DOS MZ executable
Эта статья нужны дополнительные цитаты для проверка.Апрель 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Расширение имени файла | .EXE |
---|---|
Магическое число | МЗ или ЗМ |
Тип формата | Двоичный, исполняемый файл |
Расширен до | Новый исполняемый файл Линейный исполняемый файл Переносимый исполняемый файл |
В Исполняемый файл 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]
Рекомендации
- ^ Внутри 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 ».