Сборник по задачам и примерам Assembler



         

Получить номер заданного по умолчанию дисковода - часть 4


сегмента со смещением 80h от его начала и занимает 128 байт. При успешном

окончании поиска функция 4Eh (и 4Fh тоже) помещает блок данных, имеющий

приведенный ниже формат.

Смещение

Размер в байтах

Описание

00h

1

Буква логического диска, если бит 7 = 0, то удаленный диск

01h

И

Поисковый шаблон

0Сh

1

Атрибуты поиска

0Dh

2

Порядковый номер файла в каталоге

0Fh

2

Номер кластера начала каталога предыдущего уровня

11h

4

Резерв

15h

1

Атрибуты найденного файла

16h

2

Время создания (модификации) файла

18h

2

Дата создания файла

1Ah

4

Размер файла

1Eh

13

ASCIZ-имя файла с расширением

После анализа данной области в программе принимается решение об окончании или продолжении поиска.

В качестве шаблона можно задать символы *.*, тогда мы сможем получить имена и проанализировать все файлы в текущем каталоге. Это может понадобиться при программировании операции перемещения или копирования каталога.

Найти следующий соответствующий шаблону файл

Вход: АН = 4Fh; в области DTA должен содержаться блок данных, заполненный единственным вызовом 4eh в начале поиска.

Выход: если CF = 0 — успех; если CF = 1 — в АХ = код ошибки: 12h — больше файлов в каталоге нет.

Для работы с DTA в системе MS DOS существуют две функции lah и 2fh. После старта программы текущей DTA является область по адресу PSP:OO8Oh. Мы уже имели с ней дело, когда рассматривали проблему обработки содержимого командной строки.

Получить адрес области DTA

Для выполнения работы, связанной с файлами, MS DOS предоставляет возможность установить свою область DTA.

Вход: АН = 2Fh.

Выход: ES:BX — адрес области, которую впоследствии функцией lah можно сделать текущей областью DTA для последующих операций ввода-вывода.

установить текущую область DTA

Вход: АН - 1Ah; DS:DX — адрес области, которая будет областью DTA для последующих файловых операций.

Понятно, что даже если мы устанавливаем свою область DTA, все смещения и данные, формируемые функциями 4Eh 4Fh, остаются актуальными.

 




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