Тема: Архитектура и программирование параллельного порта в режиме ядра
Цель работы: ознакомиться с назначением и характеристиками параллельных портов ЭВМ, структурой простого драйвера режима ядра, процессом его регистрации и загрузки в системе.
Задание:
1. Исследуйте работу программы XPLPT.
2. Ознакомьтесь с теоретическим материалом из рекомендаций к выполнению работы.
3. Модифицируйте исходный код простого драйвера SimpleLPT.bat (Листинг 1) (файл доступен для загрузки с сайта дистанционного обучения), чтобы в процедуре его инициализации DriverEntry устанавливались в высокий уровень некоторые из выводов порта LPT, согласно варианту (табл. 1). Сохраните файл, выполните полученный пакетный файл, для получения файла драйвера SimpleLPT.sys. Файл SimpleLPT.bat является комбинацией *.bat и *.asm файлов, и имеет расширение *.bat, содержит как исходный код драйвера, так и команды для его компиляции. Для вывода данных в порт необходимо использовать привилегированную команду процессора out. Выполнение этой команды возможно только в нулевом кольце защиты, в котором выполняется ядро операционной системы. Чтобы воспользоваться командой out, ей необходимо указать адрес порта и данные для вывода в порт. Для передачи этих параметров необходимо воспользоваться регистрами, например dx и al, т.к. передача параметров данной команде разрешена только через регистры. В регистр dx необходимо записать адрес порта, а в регистр al данные для вывода.
4. Разберите исходный код программы запуска драйвера scp.asm используя файл документации drv_simple.doc (файлы доступны для загрузки с сайта дистанционного обучения). Выполните необходимую модификацию исходного кода, для того чтобы она могла загружать драйвер SimpleLPT.sys в адресное пространство ядра операционной системы. Откомпилируйте файл (рисунок 1), выполнив следующие команды в командной строке: c:\masm32\bin\ml /c /coff -I"C:\masm32\include" scp.asm c:\masm32\bin\link /entry:start /subsystem:windows scp.obj /libpath:"C:\masm32\lib\" /out:scp.exe
5. Выполните пробный запуск программы. Если все выполнено правильно, программа XPLPT должна отобразить изменение состояния выходных битов порта линии данных, согласно варианту вашего задания
СПИСОК ЛИТЕРАТУРЫ
1. Юров В.И. Ассемблер: Учебник для вузов. 2-е изд. – СПб.: Питер, 2011. –
640с.
2. Кутузов М.А., Преображенский А. Выбор и модернизация компьютера. 4-е
изд. – СПб.: Питер, 2005. – 320с.
3. Мюллер С., Зекер К. Модернизация и ремонт ПК. 10-е изд.: Пер. с англ. – К.;
М.; СПб.: Вильямс, 1999 . – 992с.
4. Томпсон Р.Б., Томпсон Б.Ф. Железо ПК: Энциклопедия. 3-е изд. – СПб.: Питер, 2004. – 956с.
5. Хамахер К., Вранешич З., Заки С. Организация ЭВМ. 5-е изд. – СПб.: Питер,
2003. – 848с.
6. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов. –
СПб.: Питер, 2007. – 672с.
7. Таненбаум Э. Архитектура компьютера. 5-е изд. – СПб.: Питер, 2007. – 844с.