MS DOS позволяет получить для анализа и при необходимости изменить имя файла, байт атрибутов файла, время и дату его последней модификации в элементе каталога, соответствующего этому файлу. Для этого предназначены функции 43h, 56h, 57h. Подфункция 00 функции 43h прерывания 21h предназначена для получения слова атрибутов файла.
Получить атрибуты файла
Вход: АХ = 4300h; DS:DX — ASCIZ-строка с именем (путем) файла.
Выход: CF = 0 — СХ = слово атрибутов файла; CF = 1 — АХ = код
ошибки: 1 — неверное значение в AL; 2 — файл не найден; 3 —
несуществующий путь; 5 — доступ запрещен.
:prg07_12.asm - программа демонстрации получения атрибутов файла.
.data
fname db "maket.asm".
point_fname dd fname
.code
:----.....получим атрибуты файла-----------------........-
Ids dx.point_fname:формируем указатель на строку string movax.4300h ;номер функции DOS int 21h
jc exit :переход в случае ошибки :в сх атрибуты (см. ниже)
Напомним формат байта атрибутов:
Биты | Описание |
7 | Разделяемый в Novell NetWare |
6 | Не используется |
5 | Архивный |
4 | Каталог |
3 | Метка тома (только исполнение Novell NetWare) |
2 | Системный |
1 | Скрытый |
0 | Только чтение |
Установить атрибуты файла
Подфункция 01 функции 43h прерывания 21h предназначена для установления
слова атрибутов файла.
Вход: АХ = 4301п; СХ = новое слово атрибутов файла; DS:DX — ASCIZ-строка с именем (путем) файла.
Выход: CF = 0 — АХ = не определен; CF = 1 — АХ = код ошибки: 1 —
неверное значение в AL; 2 — файл не найден; 3 — несуществующий путь; 5 —
доступ запрещен.