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


       

ГЛАВА 17. Дисковая память III: Расширенные функции DOS - часть 2


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

Для доступа к диску при создании или открытии файла ис пользуется ASCIIZ строка и функции DOS шест. 3C или 3D. Ус пешная операция устанавливает флаг CF в 0 и помещает файло вый номер в регистр AX. Этот номер необходимо сохранить в элементе данных DW и использовать его для всех последующих операций над дисковым файлом. При неуспешной операции флаг CF устанавливается в 1, а в регистр AX помещается код ошиб- ки, зависящий от операции (см.табл.17.1).

01 Ошибка номера функции 02 Файл не найден 03 Путь доступа не найден 04 Открыто слишком много файлов 05 Нет доступа (Операция отвергнута) 06 Ошибка файлового номера 07 Блок управления памятью разрушен 08 Недостаточно памяти 09 Ошибка адреса блока памяти 10 Ошибка оборудования 11 Ошибка формата 12 Ошибка кода доступа 13 Ошибка данных 15 Ошибка дисковода 16 Попытка удалить оглавление 17 Другое устройство ? 18 Нет больше файлов

СОЗДАНИЕ ДИСКОВОГО ФАЙЛА ------------------------------------------------------------ В последующих разделах раскрыты требования к созданию, записи и закрытию дисковых файлов для расширенной версии DOS. Создание файла: Шест.3C Для создания нового файла или переписывания старого файла используется функция шест.3C. При этом регистр DX должен содержать адрес ASCIIZ-строки, а регистр CX - необходимый атрибут. Байт атрибут был рассмотрен в главе 15; для обычно го файла значение атрибута - 0. Рассмотрим пример создания обычного файла:

MOV AH,3CH ; Запрос на создание MOV CX,00 ; обычного файла LEA DX,PATHNM1 ; ASCIIZ строка INT 21H ; Вызов DOS JC error ; Переход по ошибке MOV HANDLE1,AX ; Сохранение файлового номера в DW

При правильном открытии операция создает элемент оглав ления с данным атрибутом, очищает флаг CF и устанавливает файловый номер в регистре AX. Этот номер должен использо ваться для всех последующих операций. Если создаваемый файл уже существует (т.е. имя файла присутствует в оглавлении), то длина этого файла устанавливается в 0 для перезаписи.

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




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