Небесные боги,приветствуют вас!Небесные боги,приветствуют вас!






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



Для того, чтобы дальнейшее изложение стало более понятным, следует немного рассказать о действиях MS DOS при запуске программы типа 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 Кбайтами .


Сайт разработан и поддерживается
by MAXIMUS в 2001г. По вопросам
размещения рекламы обращаться
maximus@runet.com



Hosted by uCoz