Ассемблер и программирование для IBM PC



       

ГЛАВА 16. Дисковая память II: Функции базовой версиии DOS - часть 15


Поиск элементов оглавления: шест. 11 и 12 Программной утилите может потребоваться поиск в оглавле нии для доступа к имени файла, например, при удалении или переименовании. Для доступа к первому или единственному элементу оглавления необходимо загрузить в регистр DX адрес неоткрытого блока FCB и выполнить функцию 11H. При использовании расширенного блока FCB можно также получить код атрибута (см.техническое руководство по DOS).

MOV AH,11H ; Запрос на первый элемент LEA DX,FCBname ; Неоткрытый FCB INT 21H ; Вызов DOS

FCB может быть расположено по адресу 5CH в префиксе про граммного сегмента, предшествующем программе в памяти (DTA по умолчанию). Подробно см. гл. 22. В регистре AL операция возвращает шест.FF, если элемент не найден, и шест.00, если найден. Операция устанавливает в DTA номер дисковода (1=A, 2=B и т.д.) имя файла и тип файла. Если найдено несколько элементов при выборке по шаблону (например, *.ASM), то для локализации элементов подмножества директории используется функция 12H:

MOV AH,12H ; Запрос следующего элемента LEA DX,FCBname ; Неоткрытый FCB INT 21H ; Вызов DOS

Коды возврата в регистре AL аналогичны кодам функции 11H.

Удаление файла: шест.13 Для удаления файла в программе используется функция DOS 13H. Операция удаления устанавливает специальный байт в первой позиции имени файла в оглавлении.

MOV AH,13H ; Запрос на удаление файла LEA DX,FCBname ; Неоткрытый FCB INT 21H ; Вызов DOS

Если операция находит и удаляет элемент, то в регистре AL устанавливается код возврата 00, иначе код равен шест.FF.

Ассемблер для IBM PC. Глава 16. 16

Переименование файла: шест. 17 Для переименования файла в программе используется функция DOS шест.17. Старое имя файла записывается в обычном месте блока FCB, а новое - начиная со смещения 16.

MOV AH,17H ; Запрос на переименование LEA DX,FCBname ; Адрес FCB INT 21H ; Вызов DOS

Символы ? и * в новом имени приводят к сохранению в соот ветствующих позициях символов из старого имени. Успешная опе рация устанавливает в регистре AL код возврата 00, а безуспешная (файл по старому имени не найден или по новому имени уже существует) - код FF.




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