На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 3 / SHOWMEM и указатель адреса среды PSP Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

SHOWMEM и указатель адреса среды PSP

Другим полезным значением, сохраняемым в PSP, является адрес сегмента блока среды процесса. Мы не возвращались к этому входу в связи с тем, что он требовал последующего разъяснения, но так как теперь мы обладаем полной информацией, необходимой для понимания всей программы SHOWMEM, включая подпрограмму ShowMCBOwner, то:


- найдите начальный блок управления памятью, используя прерывание int 52h;


- используйте поле владельца в блоке MCB в качестве адреса PSP;


- проверьте PSP путем проверки первых двух байтов для прерывания int 20h;


- если владельцем MCB является PSP, то извлеките адрес среды. Если PSP не является владельцем, то владельцем должна быть MS-DOS;


- вычтите единицу из адреса сегмента среды для получения MCB среды, и извлеките из него размер среды;


- проверьте среду на наличие двойного нуля, который сигнализирует о конце строк ASCIIZ;


- проверьте процесс пользователя на наличие сигнатуры 0001. Если сигнатура 0001 найдена, то печатайте следующее имя. Если сигнатура 0001 отсутствует, то процесс должен быть COMMAND.COM или эквивалентным командным процессом;


- если текущий MCB не является последним, то найдите следующий MCB путем добавления размера блока (плюс 1) к адресу MCB;


- повторите выполнение со второго шага.


Программа SHOWMEM демонстрирует внутренние взаимосвязи, существующие внутри DOS и показывает как можно перейти от блока управления памятью к PSP, к блоку среды и обратно к MCB среды, выбирая необходимые данные.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz