|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.05.2009, 00:44 | #1 |
Пользователь
Регистрация: 23.03.2009
Сообщений: 12
|
Помогите с лабой по ассемблеру
Задание на лабу следующее.
"Получить список кластеров, распределённых файлу". Файловая система FAT 32. |
26.05.2009, 03:19 | #2 |
equ asm
Участник клуба
Регистрация: 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 это маркер последнего кластера. |
26.05.2009, 23:07 | #3 |
Пользователь
Регистрация: 23.03.2009
Сообщений: 12
|
А наброска кода нет ни какого, или чего нибудь подобного.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите закончить с лабой | 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 |