Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВССиТ / МУ-Программирование устройств-ПЗ.docx
Скачиваний:
52
Добавлен:
28.03.2015
Размер:
243.95 Кб
Скачать

1) Установка/ проверка дискового накопителя по умолчанию.

Программы могут экономить часть работы, назначая дисковый накопитель, на котором хранятся каталоги и файлы данных, по умолчанию /1-5/.

1.1) Для установки дискового накопителя по умолчанию необходимо в регистр AH записать функцию 0Eh, в регистр DL поместить номер диска (00h – A, 01h – B и т.д.), вызвать прерывание 21h. Эта функция возвращает в регистре AL максимально возможный в данной системе номер диска.

1.2) Функция 19h прерывания 21h сообщает о том, какой дисковый накопитель установлен по умолчанию, возвращая номер диска в регистре AL (00h – A, 01h – B и т.д.). Входных регистров для данной функции нет.

2) Определение доступного дискового пространства.

Программа должна контролировать доступное дисковое пространство и сообщать пользователю о нехватке места. В этом случае пользователь может выйти из программы и устранить ошибку без потери информации /1-5/.

Для получения информации о свободном дисковом пространстве необходимо в регистр AH записать функцию 36h, в регистр DL поместить номер диска (00h – текущий накопитель, 01h – А и т.д.), вызвать прерывание 21h. При возврате регистр AX содержит или код ошибки FFFFh, если в регистре DL был указан неправильный номер устройства, или количество секторов в одном кластере, если ошибки не возникло; BX содержит число свободных кластеров; CX - размер сектора в байтах, DX – общее число кластеров на диске. Используя эту информацию, можно посчитать свободное пространство на диске () и полный объём диска ().

3) Создание/ удаление подкаталога.

Программа может создавать и удалять подкаталоги только при соблюдении определённых условий. Для создания подкаталога необходимо, чтобы было хотя бы одно пустое место в корневом каталоге. Для удаления подкаталога необходимо, чтобы он не содержал ссылок на другие подкаталоги и файлы (был пустым). Кроме того, нельзя удалить текущий каталог, в котором по умолчанию выполняются все операции над подкаталогами. Также нельзя удалить корневой каталог /1-5/.

3.1) Для создания подкаталога необходимо, чтобы пара регистров DS:DX указывала на строку, содержащую имя накопителя и путь к каталогу, в котором нужно создать подкаталог. Строка должна заканчиваться байтом ASCII 0. Последнее имя пути – имя создаваемого подкаталога. Все перечисленные имя каталогов до создаваемого нового должны существовать. Далее в регистр AH требуется поместить функцию 39h и вызвать прерывание 21h. Если указан правильный путь, то будет создан новый каталог. В противном случае будет установлен флаг переноса CF, а в регистре AX будет содержаться код ошибки: 3 – несуществующий путь; 5 – доступ запрещён.

3.2) Для удаления подкаталога необходимо, чтобы пара регистров DS:DX указывала на строку, содержащую путь к удаляемому подкаталогу. Затем в регистр AH требуется поместить функцию 3Ah и вызвать прерывание 21h. Если указан правильный путь, то будет удалён заданный подкаталог. В противном случае будет установлен флаг переноса CF, а в регистре AX будет содержаться код ошибки: 3 – несуществующий путь; 5 – доступ запрещён; 10h – попытка удаления текущего каталога.