MS-DOS для программиста

Определение размера кластера и сектора


Функции MS-DOS могут помочь вам в получении информации, необходимой для организации доступа к диску на уровне секторов и кластеров. При этом вы будете избавлены от необходимости читать в память и анализировать содержимое загрузочного сектора логического диска.

Информация о таблице размещения файлов FAT для текущего диска может быть получена с помощью функции 1Bh прерывания INT 21h , имеющего следующие параметры вызова:



На входе: AH 1Bh
На выходе: DS:BX Адрес первого байта FAT . Это байт идентификации среды носителя данных, соответствует байту media в блоке параметров BIOS
DX Общее количество кластеров на диске
AL Количество секторов в одном кластере
CX Количество байт в одном секторе

Дополнительно эта функция возвращает общее количество кластеров на диске, размер кластера в секторах и размер сектора в байтах.

Для старых версий MS-DOS регистровая пара DS:BX указывала на FAT , считанный в память. Более поздние версии операционной системы могут содержать по этому адресу только часть таблицы размещения файлов .

Для получения аналогичной информации не о текущем, а о любом диске, используйте функцию 1Ch. Эта функция полностью аналогична предыдущей, за исключением того, что в регистре DL должен быть указан номер НГМД или НМД: 0 - текущий, 1 - А:, 2 - В: и т. д.



Содержание раздела