Ассемблер и программирование для IBM PC



       

ГЛАВА 15. Дисковая память I: Организация - часть 6


6* 01 17 80 01 FF*F

Для того, чтобы найти первый элемент FAT, необходимо умножить 15 на 1,5, получим 22,5, и выбрать содержимое байтов 22 и 23, как в предыдущем примере. В этот раз эти байты содержат 6*01, что после перестановки байт даст 016*. Так как 15-число нечетное, то используются первые три цифры 016. Второй кластер для файла, следовательно, имеет номер 016. Для того, чтобы найти третий кластер, необходимо умножить 16 на 1,5 получим 24. Затем следует выбрать содержимое байтов 24 и 25 таблицы FAT. Значение 1780 после перестановки байтов даст 8017. Так как число 16 четное, то используются последние три цифры 017. Третий кластер для файла имеет номер 017. Для того, чтобы найти четвертый кластер, необходимо умножить 17 на 1,5, получим 25.5. Затем следует выбрать содержимое байтов 25 и 26 таблицы FAT. Значение 8001 после перестановки байтов даст 0180. Так как число 17 нечетное, то используются первые три цифры 018. Четвертый кластер для файла имеет номер 018. При использовании этой же процедуры для локализации содержимого следующего элемента FAT по относительным адресам 27 и 28, получим FF*F, что после перестановки даст *FFF. Так как число 18 четное, используются последние три цифры FFF, что обозначает последний элемент. Как было ранее сказано, все файлы начинаются на границе кластеpа. Кроме того, совсем не обязательно файл должен храниться в соседних кластерах, он может быть разбросан на диске по разным секторам. Если в программе необходимо определить тип установленного диска, то можно обратиться к таблице FAT непосредственно, или, что предпочтительней, использовать функцию DOS 1BH или 1CH.

ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ ------------------------------------------------------------

ъ Независимо от размеров все файлы начинаются на границе кластера. ъ Оглавление (каталог) содержит для каждого файл на диске элементы, определяющие имя, тип, атрибуты, дату, началь ный сектор и pазмер файла.

Ассемблер для IBM PC. Глава 15 51

ъ Таблица распределения файлов (FAT) содержит один элемент для каждого кластеpа в каждом файле.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ------------------------------------------------------------

15.1. Какую длину в байтах имеет стандартный сектор?

15.2. Где расположена запись начальной загрузки?

15.3. Как обозначаются в оглавлении удаленные файлы?

15.4. Какие дополнительные действия выполняются при формати зации дискеты по команде DOS FORMAT /S?

15.5. Где и каким образом обозначается в таблице FAT, что устройством является твердый диск?

15.6. Имеется файл размером 2890 (десятичное) байтов: а) Где хранит cистема размер файла? б) Как выражается этот размер в шестнадцатиричном формате? в) Покажите значе ние в том виде, как оно записывается системой.

Ассемблер для IBM PC. Глава 16. 1




    Содержание  Назад  Вперед