Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIchka4.DOC
Скачиваний:
5
Добавлен:
04.05.2019
Размер:
940.03 Кб
Скачать

Лабораторная работа № 1.

Управление файловой и каталоговой системами в DOS.

Основные сведения.

Программные прерывания и системные вызовы.

В данной работе будут описаны функции прерывания DOS 21H и прерывания 25h, 26h, относящиеся к работе с дисками. Хендлом (handle) или логическим номером файла называется 16 – битовый номер, возвращаемый DOS при открытии файла. При дальнейших действиях система пользуется для идентификации только этим хендлом. В ранних версиях DOS при работе с файловой системой может встретиться понятие управляющего блока файла (fcb), который представляет собой буфер, для записи основных данных о файле при его открытии. Этот буфер, находился в программе, которая открывала файл. Хендл полностью заменяет fcb и требует для хранения всего одно слово. Каждому файлу ставится в соответствие набор атрибутов, определяющих поведение функции.

Атрибуты файла.

Код

Описание

00h

Нормальный, можно читать и записывать без ограничений.

01h

Только для чтения, не может быть открыт для записи.

02h

Скрытый, не может найден поиском в каталоге.

04h

Системный, не может быть найден поиском в каталоге.

10h

Подкаталог.

20h

Архив, устанавливается сразу после изменения файла.

Описание функции работы с дисками прерывания DOS 21H.

Для вызова функции прерывания DOS 21H необходимо проделать следующие действия:

  • выбрать функцию, выполняющую требуемые действия;

  • занести номер функции в регистр АН;

  • подготовить другие регистры (если это необходимо);

  • написать команду INT 21H;

  • прочесть результаты или состояние из регистров, указанных в описании данной функции.

Ниже следует описание функции 21H.

Функция 0ен

Выбор текущего дисковода.

*Вход:

АН=0ЕН

DL – номер логического дисковода (0 – А, 1 – В и т.д.)

*Выход:

AL – Количество логических дисководов

*Примечание.

Эта функция используется для смены логического диска. Заданный логический диск становится текущим. Функция применяется перед функцией смены текущей директории, если она расположена на другом диске. Необходимо помнить, DOS для каждого диска хранит текущий каталог и при переходе на данный диск устанавливается его текущая директория.

Функция 1ан

Устанавливает буфер обмена с диском (DTA).

*Вход:

АН=1АН

DS:DX – адрес DTA

*Выход: -

*Примечание.

DX содержит адрес начала буфера для обмена с диском. Эта функция применяется для создания буфера, так как некоторые функции работы с диском предполагают наличие такого буфера. Узнать наличие такого буфера можно функцией 2Fh.

Структура DTA.

Функция 2fh

Получает адрес буфера обмена с диском (DTA)

*Вход:

АН=2FH

*Выход:

ES:BX – адрес DTA

Функция 36н Определяет параметры диска

*Вход:

АН=36Н

DL – дисковод (0 – текущий, 1 – А и т.д.)

*Выход:

AX – 0FFFh, если несуществующий диск, иначе количество секторов в кластере

BX – число доступных кластеров

СХ – количество байт в секторе

DX – общее количество кластеров на диске

*Примечание.

Функция возвращает информацию, необходимую для подсчёта количества имеющихся байт на диске.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]