Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОргЭВМ 2 курс 1 сем / comput_org_2018 / Теория / Уч_пос_АрхКомп_2017.docx
Скачиваний:
47
Добавлен:
01.09.2020
Размер:
626.15 Кб
Скачать

3.3.3. Организация выполняемых программ в ms dos

Поскольку выполнение лабораторных работ по курсу происходит в среде ОС MS DOS, рассмотрим основные типы исполняемых файлов:

  • *.bat – задают порядок выполнения некоторой последовательности программ;

  • *.com – файлы исполняемых программ типа com;

  • *.exe – файлы исполняемых программ типа exe.

Файлы типа *.com содержат только исполняемый код без дополнительной информации о программе, формируются в загрузочном виде и не требуют настройки. Весь код, данные и стек такой программы располагаются в одном сегменте, имеют длину не более 64 Кб и служат для организации простых модулей, ориентированных на модели памяти tiny и small (приложение 1).

Файлы типа *.exe могут иметь произвольную длину, они содержат заголовок, в котором описывается размер файла, требуемый объем памяти и таблица загрузки – список команд с абсолютными адресами, требующих настройки при загрузке в зависимости от размещения программы в памяти.

Структура размещения в памяти файла типа COM показана на рис. 3.3.

64 Кб

 Стек

 Данные и код программы

SS:SP

100h  CS:IP ( директива ORG 100h)

PSP

0

 DS, CS, ES, SS

Рис. 3.3

В начальной части com-файла программы (а также и exe-файла) MS DOS размещает специальный блок – префикс сегмента программы ПСП (PSP - рrogram segment prefix), который содержит информацию для доступа программы к параметрам командной строки, к среде окружения, для реакции программы на критические ошибки и управляющие команды типа Ctrl+C. В начальной части PSP размещена команда вызова обработчика прерывания для завершения программы и возврата в DOS. Так как после загрузки все сегментные регистры, включая CS, указывают на начало PSP, а IP = 0, то программа не может исполняться, начиная с этого адреса, и первой командой делают ORG 100h , устанавливающуую CS:IP на конец PSP.

Структура размещения в памяти файла типа EXE показана на рис. 3.4ю мых файлов. сразу за данной.., а состав ряда полей ПСП – в табл. 3.1.

SS:SP

Стек

SS:00

Данные

DS (сюда его необходимо установить)

Код

100h CS:00

PSP

DS (начальное положение), ES

Рис.3.4

Таблица 3.1. Состав основных полей префикса сегмента программы

0h

DW

Команда INT 20 ( 16-ный код: CD 20) - вызов прерывания DOS для завершения программы и возврата в DOS

2h

DW

Размер доступной для программы памяти в параграфах

0Eh

DD

Адрес обработчика прерывания по Ctrl^Break (INT 23h)

12h

DD

Адрес обработчика прерывания по критической ошибке (INT 24h)

2Ch

DW

Значение сегментного адреса среды окружения

80h

64W

DTA –буферная область данных / адрес начала командной строки программы