Иллюстрированный самоучитель по задачам и примерам Assembler

Получение и изменение атрибутов файла

Переименовать файл

Для переименования файла используется функция 56h.

Вход: АН = 56h; DS:DX – ASCIZ-имя существующего файла; ES:DI – ASCIZ-имя нового файла; CL = маска атрибутов.

Выход: CF = 0 – при успешном переименовании; CF = 1 – АХ = код ошибки: 2 – файл не найден; 3 – несуществующий путь; 5 – доступ запрещен; 1 lh – устройства для старого и нового файлов не совпадают.

Функция 56h позволяет произвести перемещение между каталогами, не изменяя устройства.

;prg07_13.asm – программа перемещения между каталогами.
;не изменяя устройства функцией 56h.
¦
.data
fname_s db "maket.asm".О
point_fname_s dd fname_s
fname_d db "e:\maket.asm".0
point_fname_d dd fname_d
.code
;…..переместим файл из текущего в корневой каталог------
Ids dx.point_fname_s:формируем указатель на строку fname_s (исх. файл)
1 es di,point_fname_d;формируем указатель на строку fname_d (целевой файл)
Imov ah.56h;номер функции DOS int 21h
jc exit;переход в случае ошибки

Получить дату и время создания или последней модификации файла

Получить/изменить дату и время создания или модификации файла можно с помощью подфункций функции 57h.

Вход: АХ = 5700h; ВХ = дескриптор файла.

Выход: если CF = 0: СХ = время, DX = дата.

Если CF = 1: АХ = код ошибки (CF = п. 1 – недопустимый номер подфункции в А1; 6 – недопустимый дескриптор Время и дата файла получаются в следующих форматах.

Время Дата
Биты Описание Биты Описание
15-11 Часы (0-23) 15-9 Год
10-5 Минуты 8-5 Месяц
4-0 Секунды 4-0 День

Установить дату и время создания или последней модификации файла

Вход: АХ = 5701п; ВХ – дескриптор файла; СХ – новое время, DX = новая дата.

Выход: если CF = 0: СХ = время, DX = дата. Если CF = 1 – АХ = код ошибки: 1 – недопустимый номер подфункции в А1; 6 – недопустимый дескриптор.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.