Assembler для начинающих



         

Блок управления файлом (FCB) - часть 13


    записывается номер записи при произвольном доступе к файлу. Так как
    в данной программе для чтения-записи данных используется
    произвольный доступ, упомянутое наложение информации необходимо
    исключить.
 
      Первая команда программы имеет смещение 100H и является
    переходом на фактическое начало программы. Такая структура
    программы может показаться неэффективной, однако ассемблирование
    происходит гораздо успешней, если все данные помещаются перед
    командами, которые на них ссылаются. Фактически в программе могут
    быть ошибки, если она содержит ссылки на данные вперед. Поэтому для
    большей надежности данные помещаются в начале программы.
 
      В первой части программы устанавливается область связи с
    диском. В данной программе эта буферная область имеет смещение 90H.
    Так как длина записи равняется только 32 байтам, то впереди
    программы имется достаточно места.
 
      Далее в программе используется прерывание 21H и функция DOS для
    поиска файла с именем, совпадающим с именем, записанным в блоке
    FCB. Обратите внимание, что пара регистров DC:DX указывает на блок
    FCB, как и должно быть при любых файловых операциях. Если система
    обнаружит файл с идентичным именем, программа завершит работу,
    выдав сообщение об ошибке и сохранив существующий уже файл. В
    данной программе обрабатываются только новые файлы. Существующие
    файлы здесь никак не используются, однако гарантируется, что их
    содержимое программой не сотрется. Конечно, в реальной практике
    програма была бы составлена так, чтобы охватывать случай как новых,
    так и уже существующих файлов.
 
      Создание файла обеспечивается участком программы, помещенным
    NO_FILE. Формировать блок FCB до этого данной программе не нужно,
    так как он был сформирован командным процессором. Если описываемая
    файловая операция не сможет быть выполнена, например, из-за
    отсутствия свободного места на диске или отсутствия места в



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