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 Кбайтами .

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

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

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