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

Работа с файлами в MS DOS (имена 8.3). Создание, открытие, закрытие и удаление файла.

Следующий фрагмент программы показывает вариант применения функции 6Ch.

:prg07_04.asm – программа демонстрации открытия или создания файла
:с расширенными возможностями в текущем каталоге функцией 6Сh.
.data
handle dw 0:дескриптор файла
filename db 'my_file.txt'.0
point_fname dd filename
.code
хоrсх.сх атрибуты файла – обычный файл
movbx.2:режим доступа обычный – доступ для чтения-записи
movdx.l:если файл существует, то открыть его. в обратной случае вернуть ошибку
(для эксперимента)
Ids si.point_fname-.формируем указатель на имя файла movah.6ch
:номер функции DOS int 21h открываем файл jnc ml;если файл существовал, то переход
movdx.lOh – . открыть файл movah.6ch
:номер функции DOS int 21h:открываем файл jc exit – переход в случае ошибки
ml::действия при успешном открытии файла: mov handle.ах:сохраним дескриптор файла

Закрытие файла

В конце работы с файлом его нужно закрыть. Но это действие не является обязательным, так как функция 4сп, которая завершает выполнение программы, в числе прочих действий выполняет и закрытие всех файлов. Вход: АН = 3Eh; BX = дескриптор файла, полученный при его открытии.

Выход: CF = 0 – АХ = не определен; CF = 1 – АХ = код ошибки: 6 – недопустимый дескриптор.

Во время закрытия файла выполняются все незаконченные операции записи на диск в элементе каталога, соответствующего файлу, модифицируются различные поля, в том числе поля времени и даты устанавливаются в текущее время.

;prg07_05.asm – программа демонстрации закрытия файла функцией 3Eh.
:………
.data
handle dw 0:дескриптор файла filename db 'my_file.txt',О point fname dd filename
;……:
.code:*……
хогсх.сх:атрибуты файла – обычный файл
Ids dx.point_fnanve:формируем указатель на имя файла
movah.5bh:номер функции DOS
int 21h:открываем файл
jnc ml;обойдем открытие файла
moval.02h:режим доступа
1movah.3dh – . номер функции DOS
int 21h:открываем файл
jc exit:переход в случае ошибки
ml::действия при успешном открытии файла:
mov handle.ах;сохраним дескриптор файла
т2:;закрываем файл:

В случае задания имени, как в примере выше, файл будет создан в корневом каталоге текущего диска. Для того чтобы разместить файл в конкретном каталоге, необходимо указать полный путь к нему с завершающим символом ' \' и 13 нулевыми байтами на конце, например:

filename db 'e:\asm_on_a\'.13 dup(0),0
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.