Assembler - язык неограниченных возможностей


Создание и открытие файлов


Функция DOS 3Ch — Создать файл

Ввод: AX = 3Ch
СХ = атрибут файла

    бит 7: файл можно открывать разным процессам в Novell Netware

    бит 6: не используется

    бит 5: архивный бит (1, если файл не сохранялся)

    бит 4: каталог (должен быть 0 для функции 3Ch)

    бит 3: метка тома (игнорируется функцией 3Ch)

    бит 2: системный файл

    бит 1: скрытый файл

    бит 0: файл только для чтения

DS:DX = адрес ASCIZ-строки с полным именем файла (ASCIZ-строка ASCII-символов, оканчивающаяся нулем)

Вывод: CF = 0 и АХ = идентификатор файла, если не произошла ошибка
CF = 1 и АХ = 03h, если путь не найден
CF = 1 и АХ = 04h, если слишком много открытых файлов
CF = 1 и АХ = 05h, если доступ запрещен


Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину. Чтобы этого не произошло, следует пользоваться функцией 5Bh.


Функция DOS 3Dh — Открыть существующий файл

Ввод: AX = 3Dh
AL = режим доступа

    биты 0 – : права доступа

    00: чтение

    01: запись

    10: чтение и запись

бит 1: открыть для записи

биты 2 – 3: зарезервированы (0)

биты 6 – 4: режим доступа для других процессов

    000: режим совместимости (остальные процессы также должны открывать этот файл в режиме совместимости)

    001: все операции запрещены

    010: запись запрещена

    011: чтение запрещено

    100: запрещений нет

бит 7: файл не наследуется порождаемыми процессами

DS:DX = адрес ASCIZ-строки с полным именем файла

CL = маска атрибутов файлов

Вывод: CF = 0 и АХ = идентификатор файла, если не произошла ошибка
CF = 1 и АХ = код ошибки (02h — файл не найден, 03h — путь не найден, 04h — слишком много открытых файлов, 05h — доступ запрещен, 0Ch — неправильный режим доступа)


Функция DOS 5Bh — Создать и открыть новый файл




Начало  Назад  Вперед