V-zlom.ru » Статьи » Загрузка и выполнение COM - программы

Загрузка и выполнение COM - программы

Для запуска программ в системе MS DOS используется

специальная функция EXEC . Действия этой функции

при запуске COM - программы выглядят так :



1. Запускаемой программе отводится вся свобод-

ная в данный момент оперативная память .Сегментная

часть начального адреса этой памяти обычно называ-

ется начальным сегментом программы.



2. По нулевому смещению в сегменте, определяемом

начальным сегментом программы, EXEC строит специ-

альную служебную структуру - так называемый PSP

( Program Segment Prefix ), в котором содержится

информация,необходимая для правильной работы прог-

раммы . Заполняет PSP операционная система ( ОС ),

а его размер всегда равен 100h ( 256 ) байт .



3. Сразу вслед за PSP загружается сама COM - прог-

рамма .



4. EXEC выполняет настройку регистров процессора.

При этом устанавливаются такие значения :CS = DS =

= SS = ES указывают на начальный сегмент програ-

ммы, регистр IP инициализируется числом 100h, а

регистр SP - числом 0fffeh .



5. Теперь загруженную COM - программу можно испол-

нить . Для этого EXEC передает управление по адре-

су CS : 100h.После завершения программы управление

передается обратно в EXEC, а оттуда программе -

предку .



Таким образом,по адресу CS : 100h обязательно дол-

жна стоять первая исполняемая команда .Чаще всего

это команда перехода, но допустимо использовать и

другие .Следует также напомнить, что в MS DOS раз-

мер COM - файла не может превышать 64 Кбайт. В са-

мом деле, ведь COM - формат предполагает размеще-

ние программных кодов, данных и стека в одном сег-

менте оперативной памяти . А размер сегмента как

раз и ограничен 64 Кбайтами .

  • Автор: kennen
  • Комментарии: 0
  • Просмотры: 1039
0

Добавить комментарий

Вы не авторизованы и вам запрещено писать комментарии. Для расширенных возможностей зарегистрируйтесь!