Ассемблер и программирование для IBM PC



       

ГЛАВА 22. Программный загрузчик - часть 3


Ассемблер для IBM PC. Глава 22 35

3. Транзитная часть загружается в самые старшие адреса памяти. "Транзит" обозначает, что DOS может перекрыть данную область другими программами, если потребуется. Транзитная часть программы COMMAND.COM выводит на экран приглашение DOS A> или C>, вводит и выполняет запросы. Она содержит настраивающий загрузчик и предназначена для загрузки COM- или EXE-файлов с диска в память для выполнения. Если поступил запрос на выполнение какой-либо программы, то транзитная часть строит префикс программного сегмента (PSP) непосредственно вслед за резидентной частью COMMAND.COM. Затем она загружает запрошенную программу с диска в память по смещению шест.100 от начала программного сегмента, устанавливает адреса выхода и передает управление в загруженную программу. Ниже приведена данная последовательность:

IBMBIO.COM IBMDOS.COM COMMAND.COM (резидент) Префикс программного сегмента Выполняемая программа ... COMMAND.COM (транзитная часть, может быть перекрыта).

Выполнение команды RET или INT 20H в конце программы приводит к возврату в резидентную часть COMMAND.COM. Если транзитная часть была перекрыта, то резидентная часть перезагружает транзитную часть с диска в память.

ПРЕФИКС ПРОГРАММНОГО СЕГМЕНТА ------------------------------------------------------------

Префикс программного сегмента (PSP) занимает 256 (шест. 100) байт и всегда предшествует в памяти каждой COM- или EXE-программе, которая должна быть выполнена. PSP содержит следующие поля:

00 Команда INT 20H (шест.CD20). 02 Общий размер доступной памяти в формате хххх0. Напри мер, 512K указывается как шест.8000 вместо шест.80000. 04 Зарезервировано. 05 Длинный вызов диспетчера функций DOS. OA Адрес подпрограммы завершения. OE Адрес подпрограммы реакции на Ctrl/Break. 12 Адрес подпрограммы реакции на фатальную ошибку. 16 Зарезервировано. 2C Сегментный адрес среды для хранения ASCIIZ строк. 50 Вызов функций DOS (INT 21H и RETF). 5C Параметрическая область 1, форматированная как стандарт ный неоткрытый блок управления файлов (FCBЭ1).




Содержание  Назад  Вперед