Системное программное обеспечение персональных ЭВМ


Пример 2 - часть 3


В PSP владельца со смещением 0x16 находится сегментный адрес "родителя" - программы, запустившей данную программу. Для программ, запущенных из командной строки DOS, родителем является COMMAND.COM. Родителем же COMMAND.COM является он сам. По этому признаку (сам себе родитель) он и может быть опознан.

Если же программа не является программой DOS, командным процессором или резидентной, загруженной по INSTALL, для нее должна сохраняться строка вызова. Строка вызова находится в сегменте окружения, технику ее получения мы pассматpивали в пpедыдущей главе: программа получает адрес начала блока ок- ружения, пропускает в нем все строки до пустой, после пустой строки пропускает еще 2 байта и получает адрес строки вызова.

В отношении блоков памяти, занимаемых загружаемыми и резидентными программами, наша программа выдает тот же объем информации, что и команда DOS MEM, имеющаяся в DOS 4.0 и выше.

Здесь мы рекомендуем читателю вернуться к программному примеру 4.1 и самостоятельно разработать такой вариант программы анализа таблицы векторов прерываний, который не только определял бы, занят вектор или свободен, но и устанавливал бы, куда указывает этот вектор - ПЗУ BIOS, дополнительное ПЗУ, ядро DOS или какая-то загруженная программа (в последнем случае, используя технику, описанную в этом разделе, можно установить имя этой программы).




- Начало -  - Назад -  - Вперед -