Скачиваний:
14
Добавлен:
01.05.2014
Размер:
26.62 Кб
Скачать

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ

"Разработка и отладка инсталлируемого драйвера символьного типа"

Цель работы: Изучить технологию разработки и отладки инсталлируемых драйверов MS-DOS.

Порядок выполнения работы

1. Создание и синтаксическая отладка драйвера

1.1. Изучить содержимое файла DRIVER.ASM - программы драйвера и файла TEST.ASM - тестовой программы для отладки драйвера. Записать в отчет имя драйвера, команды, поддерживаемые драйвером и действия драйвера при выполнении данных команд, а также действия тестовой программы, которые реализуют взаимодействие с драйвером. Записать в отчет структуры фиксированной части заголовка запроса и заголоков запросов для команд 8 и 13.

1.2. Ознакомиться с форматом командных строк макроассемблера

MASM, компоновщика LINK:

MASM /H

LINK /HELP

Изучить содержание командных файлов DRIVER.BAT и TEST.BAT

1.3. Создать исполняемые файлы драйвера - DRIVER.SYS и тестовой программы - TEST.EXE. При компиляции необходимо контролировать и исправлять возможные синтаксические ошибки, информация о которых размещается в файлах листинга (*.LST).

2. Установка драйвера

2.1. Добавить в файл CONFIG.SYS строку

DEVICE=[Путь\]DRIVER.SYS

Результат показать преподавателю.

2.2. Перезагрузить операционную систему.

2.3. Запустить диагностическую программу CHECKIT, определить логичесий адрес драйвера по его имени.

2.4. Запустить отладчик AFDRUS, с помощью которого определить исполнительные адреса процедур СТРАТЕГИЯ и ПРЕРЫВАНИЕ. Сравнить их с соответствующими адресами в файле карты памяти драйвера - DRIVER.MAP.

3. Отладка драйвера

3.1. Загрузить отладчик AFDRUS, загрузить в отладчик тестовую программу TEST.EXE. Установить точки останова B1 и B2 в программе TEST и точки останова на входе в процедуры СТРАТЕГИЯ и ПРЕРЫВАНИЕ (для точек останова в драйвере следует указывать на месте регистра CS конкретное значение сегмента памяти драйвера).

3.2. Запустить программу TEST командой G. При достижении останова в драйвере проконтролировать место останова. Если это останов в процедуре стратегия, то следует настроить одно из окон данных на заголовок запроса, дешифрировать его содержание и записать его в отчет. Затем выполнять пошаговую трассировку программы драйвера до достижения команды возврата из него и одновременно контролировать действия драйвера и фиксировать их в отчете. При достижении команды возврата продолжить исполнение командой G.

3.3. При останове в точке B1 тестовой программы определить номер устройства и записать его в отчет.

3.4. Исследовать реализацию функции 40H DOS "Записать в файл/устройство". Для этого продолжить исполнение тестовой программы командой G. Пошаговую трассировку драйвера следует выполнять только до команды возврата из драйвера.

При первом останове в драйвере дешифрировать содержимое заголовка в соответствии со структурой заголовка для команды 8. При последующих остановах контролировать отличия содержимого заголовков. Записать в отчет содержимое заголовков запросов и число вызовов драйвера. Объяснить назначение этих вызовов.

Завершить данный этап при достижении точки останова B2 в тестовой программе.

4. Реализация команды 8 драйвера

4.1. Руководствуясь алгоритмом взаимодействия DOS и драйвера, полученным в п. 3.4. составить алгоритм и написать программу, выполняющую команду драйвера 8, которая состоит в записи 5 байт в буфер BUFF в области данных драйвера.

4.2. Дополнить драйвер разработанной командой, откомпилировать его и выполнить отладку.

4.3. По окончании работы удалить строку установки учебного драйвера из файла CONFIG.SYS

Соседние файлы в папке Разработка и отладка инсталлируемого драйвера символьного типа