9.4. Драйверы доступа

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

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


MOV     AH, 15
INT     10H

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

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