Ассемблер и программирование для IBM PC



       

ГЛАВА 16. Дисковая память II: Функции базовой версиии DOS - часть 4


Ассемблер для IBM PC. Глава 16. 4

сообщить DOS адрес DTA. В любой момент времени может быть активен только один DTA. В следующем примере инициализи руется адрес DTA:

MOV AH,1AH ; Установка адреса LEA DX,DTAname ; DTA INT 21H ; Вызов DOS

Если программа обрабатывает только один дисковой файл, то должна быть только одна установка адреса DTA для всего выполнения. При обработке нескольких файлов программа должна устанавливать соответствующий адрес DTA непосредственно перед каждой операцией чтения или записи. Для последовательной записи на диск существует функция шест. 15:

MOV AH,15 ; Последовательная LEA DX,FCBname ; запись INT 21H ; Вызов DOS

Операция записи использует информацию из блока FCB и адрес текущего буфера DTA. Если длина записи равна размеру сектора, то запись заносится на диск. В противном случае записи заполняют буфер по длине сектора и затем буфер записы вается на диск. Например, если длина каждой записи состав ляет 128 байтов, то буфер заполняется четырьмя записями (4*128=512) и затем буфер записывается в дисковой сектор. После успешного занесения записи на диск DOS увеличивает в блоке FCB размер файла на размер записи и текущий номер записи на 1. Когда номер текущей записи достигает 128, про исходит сброс этого значения в 0 и в FCB увеличивается номер текущего блока на 1. Операция возвращает в регистре AL сле дующие коды:

00 Успешная запись. 01 Диск полный. 02 В области DTA нет места для одной записи.

Когда запись файла завершена, можно, хотя и не всегда обязательно, записать маркер конца файла (шест.1A). Для за крытия файла используется функция шест.10:

MOV AH,10H ; Закрыть LEA DX,FCBname ; файл INT 21H ; Вызов DOS

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

00 Успешная запись. FF Описание файла оказалось в неправильном

Ассемблер для IBM PC. Глава 16. 5

элементе оглавления (возможно в результате смены дискеты).




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