Меню сайта

Урок 152. Драйверы доступа

Драйверы устройств — это сердце BIOS. Этипрограммы дают
— — — возможность программисту, работающему наязыке ассемблера, работать
— — — с устройствами IBM PC. Любая программаможет управлять устройствами
— — — с помощью соответствующихпоследовательностей команд на аппаратном
— — — уровне. Тем не менее во многих случаях выможете работать с
— — — устройствами стандартным образом, невникая в их специфические
— — — особенности. Например, только небольшоечисло программ делают с
— — — дискетой что-либо еще кроме чтения изаписи. В гл.8 была написана
— — — программа для чтения состояния дисковода.Если нужно прочитать
— — — некоторый сектор дискеты, можноиспользовать для этой цели BIOS и
— — — не переписывать эти программы заново.Программист, работающий на
— — — языке ассемблера, должен рассматриватьBIOS как инструмент,
— — — сокращающий его работу.

— — — — — Функции BIOS вызываются с помощьюпрограммного прерывания.
— — — Параметры для функции передаются черезрегистры. Например,
— — — следующие команды опрашивают текущий режимдисплея

— — — — — MOV — — — — — — — — — — — — — — — — — — — — — — — — — — — — AH, — — — — — — — — — — — 15
— — — — — INT — — -10H

— — — — — Команда INT 10H вызывет драйыеробслуживания дисплея, входящий
— — — в BIOS. Драйвер дисплея имеет большиевозможности. Установка в
— — — регистре AH числа 15 сообщает ему, чтопрограммист хочет знать

— — — текущее состояние дисплея. BIOS возвращаетинформацию о состоянии
— — — через регистр AL.

— — — — — Каждый драйвер устройства входящий в BIOSимеет свои
— — — собственные входные и выходные параметры.В общем случае регистр AH
— — — определяет функцию для данного драйвера.Остальные регистры BIOS
— — — использует для любых других принимаемыхили возвращаемых
— — — параметров. Каждая функция кратко описанав техническом описании
— — — IBM PC, а также снабжена другими важнымизамечаниями. При разборе
— — — драйверов мы вернемся к этим листингам, аперед этим рассмотрим
— — — другие векторы прерываний.

Категория: Программирование на Ассемблере | Дата: 04.03.13

Меню раздела
Блок