Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 00:44   #1
Axell
Пользователь
 
Аватар для Axell
 
Регистрация: 23.03.2009
Сообщений: 12
По умолчанию Помогите с лабой по ассемблеру

Задание на лабу следующее.
"Получить список кластеров, распределённых файлу". Файловая система FAT 32.
Axell вне форума Ответить с цитированием
Старый 26.05.2009, 03:19   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Писать код не буду, ибо щас спать пойду опишу словами.
Чтение сектора выполняется функциями int 25 и 26.
Читаем первый сектор, т.е. загрузочный. Из него нам будет нужно:
+0D 1b - кол-во секторов в кластере.
+0E 2б - Число резервных секторов в резервной области раздела, начиная с первого сектора раздела
+10 1б - Число таблиц (копий) FAT
+24 4б - Количество секторов, занимаемых одной копией FAT
+2С 4b - Номер кластера для первого кластера корневого каталога.

Первый кластер находится после всех резервных секторов и fat таблиц.
Ищем нужный нам файл:
Считываем 1 элемент каталога. Он размером 32 байта.
+1 10b символы имени. Если это не наш файл, то читаем слудующий элемент.
+1A 2б - Номер первого кластера файла. Берем этот номер и отсчитываем это смещение от начала fat.
Считываем 4 байта оттуда, если это FFFFFF0F, значит у файла тока один кластер, если нет(номер следующего кластера), считываем следующие 4 б и опять срвниваем и т.д. пока не встретим FFFFFF0F это маркер последнего кластера.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 26.05.2009, 23:07   #3
Axell
Пользователь
 
Аватар для Axell
 
Регистрация: 23.03.2009
Сообщений: 12
По умолчанию

А наброска кода нет ни какого, или чего нибудь подобного.
Axell вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите закончить с лабой qip2005 Помощь студентам 6 17.12.2008 01:38
помогите с лабой :( lily_88 Помощь студентам 3 28.10.2008 16:43
Помогите с лабой по Паскалю funny Паскаль, Turbo Pascal, PascalABC.NET 12 17.09.2008 17:25