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



         

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


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

------------------------------------------------------------ Начальный Программа адрес 00000 Векторная таблица прерываний (см.гл.23) 00400 Область связи с ROM (ПЗУ) 00500 Область связи с DOS 00600 IBMBIO.COM XXXX0 IBMDOS.COM Буфер каталога Дисковый буфер Таблица параметров дисковода или таблица распределения файлов (FAT, по одной для каждого дисковода) XXXX0 Резидентная часть COMMAND.COM XXXX0 Внешние команды или утилиты (COM или EXE-файлы) XXXX0 Пользовательский стек для COM-файлов (256 байтов) XXXX0 Транзитная часть COMMAND.COM, записывается в самые старшие адреса памяти. ------------------------------------------------------------ Рис.22.1. Карта распределения DOS в памяти.

КОМАНДНЫЙ ПРОЦЕССОР COMMAND.COM ------------------------------------------------------------

Система загружает три части программы COMMAND.COM в память во время сеанса работы постоянно или временно. Ниже описано назначение каждой из трех чатей COMMAND.COM:

1. Резидентная часть непосредственно следует за программой IBMDOS.COM (и ее области данных), где она находится на протяжении всего сеанса работы. Резидентная часть обрабатывает все ошибки дисковых операций ввода-вывода и управляет следующими прерываниями:

INT 22H Адрес программы обработки завершения задачи. INT 23H Адрес программы реакции на Ctrl/Break. INT 24H Адрес программы реакции на ошибоки дисковых операций чтения/записи или сбойный участок памяти в таблице распределения файлов (FAT). INT 27H Завершение работы, после которого программа остается резидентной.

2. Часть инициализации непосредственно следует за резидент ной чатью и содержит средства поддержки AUTOEXEC- файлов. В начале работы системы данная часть первой получает управление. Она выдает запрос на ввод даты и определяет сегментный адрес, куда система должна загружать программы для выполнения. Ни одна из этих программ инициализации не потребуются больше во время сеанса работы. Поэтому первая же команда вводимая с клавиатуры и вызывающая загрузку некоторой программы с диска перекрывают часть инициализации в памяти.




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