3.3.3. Чтение FAT

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).

      Для  того,  чтобы  вычислить  кластеры,  занимаемые файлом,

 считайте всю  FAT в память и  получите номер начального кластера

 файла из каталога. Затем, для 12-разрядных элементов:

 

      - умножьте  номер кластера на  3 и результат  поделите на 2

 (каждый элемент FAT занимает 3/2 байта);

      - прочитайте слово, содержащееся  на полученном  расстоянии

 от начала FAT;

      -  если  номер  кластера  был  четным,  возьмите младшие 12

 разрядов результата (AND x,0FFFh);  в противном случае, возьмите

 его старшие 12 разрядов (MOV CL,4; SHR x,CL);

      - результат -  номер следующего  кластера файла  (или FFFh,

 если кластер был последним).

 

      Помните,  что 12-битовый  элемент может  пересекать границу

 секторов FAT! Гораздо проще работать с 16-разрядными элементами:

 

 каждый  элемент  содержит  16-битовое  смещение  от  начала  FAT

 следующего элемента или FFFFh для конца файла.

 

Вы находитесь в разделе: 
Метки: 

Добавить коментарий