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



       

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


В случае возникновения ошибки операция устанавливает флаг CF в 1 и помещает в регистр AX код возврата: 03, 04 или 05 (см.табл.17.1). Код 05 свидетельствует либо о переполнении оглавления, либо о защите существующего файла атрибутом "только чтение". При завершении операции необходимо сначала проверить флаг CF, так как при создании файла возможна установка в регистре AX файлового номера 0005, который можно легко спутать с кодом ошибки 05 (нет доступа).

Запись файла: шест.40 Для записи файла используется функция DOS шест.40. При этом в регистре BX должен быть установлен файловый номер, в регистре CX - число записываемых байт, а в регистре DX - адрес области вывода. В следующем примере происходит запись 256 байт из области OUTREC:

HANDLE1 DW ? OUTREC DB 256 DUP (' ') MOV AH,40H ; Запрос записи MOV BX,HANDLE1 ; Файловый номер MOV CX,256 ; Длина записи LEA DX,OUTREC ; Адрес области вывода INT 21H ; Вызов DOS JC error2 ; Проверка на ошибку CMP AX,256 ; Все байты записаны? JNE error3

Правильная операция записывает из памяти на диск все дан ные (256 байт), очищает флаг CF и устанавливает в регистре AX число действительно записанных байтов. Если диск перепол нен, то число записанных байтов может отличаться от задан ного числа. В случае неправильной операции флаг CF устанав ливается в 1, а в регистр AX заносится код 05 (нет доступа) или 06 (ошибка файлового номера). Закрытие файла : шест.3E После завершения записи файла необходимо установить файло вый номер в регистр BX и, используя функцию DOS шест.3E, закрыть файл. Эта операция записывает все оставшиеся еще данные из буфера на диск и корректирует оглавление и табли цу FAT. MOV AH,3EH ; Запрос на закрытие файла MOV BX,HANDLE1 ; Файловый номер INT 21H ; Вызов DOS

В случае ошибки в регистре AX устанавливается код 06 (неправильный файловый номер).

ПРОГРАММА:ИСПОЛЬЗОВАНИЕ ФАЙЛОВОГО НОМЕРА ДЛЯ СОЗДАНИЯ ФАЙЛА. ------------------------------------------------------------ Программа, приведенная на рис.17.2, создает файл по имени, которое вводится пользователем с клавиатуры. В программе имеются следующие основные процедуры:




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