Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Скотт Мюлле- Модернизация и ремонт ПК стр.723Интерфейс, обеспечивающий связь между пользовательским приложением и накопителем, включает четыре уровня: ■ прерывание DOS Int 21h; ■ прерывания DOS Int 25h и Int 26h; ■ дисковое прерывание ROM BIOS Int 13h; ■ команды для управления дисковым контроллером ввода-вывода. Каждый уровень выполняет несколько конкретных функций, причем все они работают как для дисководов, так и для жестких дисков, хотя на уровне Int 13h существуют различия между работой с дисководами и жесткими дисками. Контроллеры дисководов и жестких дисков существенно отличаются друг от друга, но уже на уровне обращения к дискам через Int 13h никакой разницы в работе нет. Рассмотрим более детально работу каждого уровня дискового интерфейса. Прерывание Int 21h Это прерывание находится на самом верхнем уровне в иерархии дискового интерфейса. Оно позволяет выполнять наиболее сложные операции с дисками. Например, если пользовательскому приложению нужно создать каталог, ему достаточно вызвать функцию 39h прерывания Int 21h. Эта функция самостоятельно выполнит все необходимые для создания нового каталога действия, включая модификацию структуры каталогов и секторов FAT. Все, что требуется передать данной функции, — это имя создаваемого подкаталога. Int 21h выполняет значительный объем работы как при создании каталога, так и при других дисковых операциях, поэтому в большинстве случаев приложения используют его для работы с дисками. Прерывания Int 25h и Int 26h Эти прерывания выполняют операции значительно более низкого уровня по сравнению с Int 21h. Они могут только читать с диска указанные секторы (Int 25h) или записывать их на диск (Int 26h). Если вы захотите с помощью только этих функций создать на диске новый каталог, придется выполнить ряд действий. ■ Точно рассчитать, какой именно каталог и какие секторы FAT необходимо модифицировать. ■ Прочитать эти секторы с помощью Int 25h. ■ Изменить содержимое считанных секторов так, чтобы в них находилась информация о новом каталоге. ■ Записать измененные секторы на диск с помощью Int 26h. И это только основные моменты. На самом деле все гораздо сложнее, особенно если учесть количество секторов, которые нужно изменить. Кроме того, все секторы при использовании Int 25h и Int 26h нумеруются, начиная с нуля, и доступ к ним происходит именно по этим номерам. Поэтому необходимо определить, где находятся секторы, которые нужно модифицировать. Учитывая все эти обстоятельства, большинство программистов предпочитают использовать Int 21h, чтобы каждый раз не писать заново дисковый интерфейс. Прерываниями Int 25h и Int 26h обычно пользуются только программы редактирования диска на уровне секторов. Такие программы могут работать только с теми секторами, которые входят в область какого-либо логического диска DOS. Прерывание Int 13h Следующий (еще более низкий) уровень дискового интерфейса — прерывание Int 13h, обработчик которого обычно содержится в ROM BIOS, хотя он может быть заменен обработчиком из какого-либо драйвера. Поскольку операционная система загружается с диска, ей требуется находящийся в ROM BIOS обработчик Int 13h, так как никакие программные драйверы к этому моменту еще не загружены. Прерывание Int 13h работает непосредственно с контроллером диска, и поэтому его обработчик зависит от типа используемого контроллера. |