Здавалка
Главная | Обратная связь

Теоретические указания



Создание, открытие и закрытие файла:

INT 21h, функция 3сh. Создать файл через описатель.

при вызове: AH= 3сh

DS:DX = адрес строки ASCIIZ с именем файла

СХ = атрибут файла

при возврате: AХ= код ошибки, если cf установлен

описатель файла – если ошибки нет

INT 21h, функция 5аh. Создать уникальный временный файл.

при вызове: AH= 5аh

DS:DX = адрес строки ASCIIZ с диском и путем

СХ = атрибут файла

при возврате: AХ= код ошибки, если cf установлен

описатель файла – если ошибки нет

DS:DX = становится полным ASCIIZ – именем нового файла

INT 21h, функция 3dh. Открыть описатель файла.

при вызове: AH= 3dh

DS:DX = адрес строки ASCIIZ с именем файла

AL = режим открытия

при возврате: AХ= код ошибки, если cf установлен

описатель файла – если ошибки нет

INT 21h, функция 3еh. Закрыть описатель файла.

при вызове: AH= 3еh

ВX = описатель файла

при возврате: AХ= код ошибки, если cf установлен

INT 21h, функция 41h. Удалить файл.

при вызове: AH= 41h

DS:DX = адрес строки ASCIIZ с именем файла

при возврате: AХ= код ошибки, если cf установлен

Запись и чтение данных:

INT 21h, функция 42h. Установить указатель файла.

при вызове: AH= 42h

ВX = описател файла

CX:DX = на сколько передвинуть указатель: (СХ*65536) + DX

AL = 0 переместить к началу файла + CX:DX

1 переместить к текущей позиции + CX:DX

2 переместить к концу файла + CX:DX

при возврате: AХ= код ошибки, если cf установлен

DX:AX = новая позиция указателя файла

INT 21h, функция 3fh. Читать файл через описатель.

при вызове: AH= 3fh

ВX = описател файла

DS:DX = адрес буфера для чтения данных

СХ = число считываемых байт

при возврате: AХ= код ошибки, если cf установлен

AX = число действительно прочитанных байт

INT 21h, функция 40h. Писать в файл через описатель.

при вызове: AH= 40h

ВX = описател файла

DS:DX = адрес буфера, содержащего записываемые данные

СХ = число записываемых байт

при возврате: AХ= код ошибки, если cf установлен

AL = число реально считанных байт

Изменение характеристик файла:

INT 21h, функция 43h. Установить/опросить атрибут файла.

при вызове: AH= 43h

DS:DX = адрес строки ASCIIZ с именем файла

AL = код подфункции: 0=извлечь текущий атрибут файла

1 = установить атрибут файла

СХ = новый атрибут файла

при возврате: AХ= код ошибки, если cf установлен

СX = текущий атрибут файла

INT 21h, функция 57h. Установить/опросить дату/время файла.

при вызове: AH= 57h

AL = 0, чтобы получить дату/время файла

1, чтобы установить дату/время файла

BX = описатель файла

СХ = новая отметка времени в формате время/дата файла

DX = новая отметка даты в формате время/дата файла

при возврате: AХ= код ошибки, если cf установлен

СX = отметка времени файла в формате время/дата файла

DX = отметка даты файла в формате время/дата файла

Поиск файла:

INT 21h, функция 4еh. Найти первый совпадающий файл.

при вызове: AH= 4еh

DS:DX = адрес строки ASCIIZ с именем файла

СХ = атрибут файла для сравнения

при возврате: AХ= код ошибки, если cf установлен

INT 21h, функция 4fh. Найти следующий совпадающий файл.

при вызове: AH= 4fh

DS:DX = адрес данных, возвращенных предыдущей 4eh функцией

при возврате: AХ= код ошибки, если cf установлен

Операции над каталогами:

INT 21h, функция 39h. Создать новое оглавление.

при вызове: AH= 39h

DS:DX = адрес строки ASCIIZ с именем оглавления

при возврате: AХ= код ошибки, если cf установлен

INT 21h, функция 3аh. Удалить оглавление.

при вызове: AH= 3аh

DS:DX = адрес строки ASCIIZ с именем оглавления

при возврате: AХ= код ошибки, если cf установлен

INT 21h, функция 3bh. Установить умалчиваемое оглавление DOS.

при вызове: AH= 3bh

DS:DX = адрес строки ASCIIZ с именем оглавления

при возврате: AХ= код ошибки, если cf установлен

INT 21h, функция 47h. Дать умалчиваемое оглавление DOS.

при вызове: AH= 47h

DS:SI = адрес локального буфера для результирующего пути

DL = номер диска (0 – текущий, 1 – А, и т.д.)

при возврате: AХ= код ошибки, если cf установлен

Операции над дисками:

INT 21h, функция 0Еh. Выбор диска.

при вызове: AH= 0Еh

AL= код дисковода (0=А, 1=В и т.д.)

при возврате: AL= число логических дисководов в системе

INT 21h, функция 19h. Получение текущего диска.

при вызове: AH= 19h

при возврате: AL= код текущего диска (0=А, 1=В и т.д.)

INT 21h, функция 1Вh. Получение информации о текущем диске.

при вызове: AH= 1Вh

при возврате: AL= количество секторов в кластере

СХ= количество байтов в секторе

DX= общее количество кластеров на диске

DS:DX->байт описания носителя:

FFh – дискета 320 Кбайт, Feh - дискета 160 Кбайт,

FDh - дискета 360 Кбайт, FCh - дискета 180 Кбайт,

F9h - дискета 1,2 Мбайт, F8h – жесткий диск

F0h – другие

INT 21h, функция 1Сh. Получение информации о заданном диске.

при вызове: AH= 1Сh

при возврате: (см. функцию 1Вh)

INT 21h, функция 36h. Дать свободную память диска.

при вызове: AH= 36h

DL = номер диска (0 – текущий, 1 – А, и т.д.)

при возврате: AХ= 0ffffh, если AL содержал неверный номер диска

ВХ= доступных кластеров

DX= число кластеров на диске

СХ = байт на сектор

Атрибуты файла:

0001h – только чтение,

0002h – скрытый,

0004h – системный,

0020h – архивный

Режимы открытия:

000h – чтение,

001h – запись,

010h – чтение и запись

Описатель файла:

0 – устройство ввода,

1 – устройство вывода,

2 – устройство ошибок,

3 – устройство AUX,

4 - принтер

 

Задания

1. В текущем каталоге диска создать файл с именем MYFILE.001 и записать в него символьную строку.

2. Прочитать содержимое файла MYFILE.001 в память и вывести его на экран. Предполагается , что размер файла не более 80 байтов.

3. Прочитать 8 байтов из произвольного файла, начиная с байта 5, вывести их на экран.

4. Добавить символьную строку к концу символьного файла.

5. Установить у произвольного файла атрибут «только для чтения».

6. Изменить дату и время создания произвольного файла.

7. Переименовать произвольный файл, находящийся в текущем каталоге, дав ему имя NEWFILE.DAT.

8. Переслать произвольный файл из текущего каталога в нижележащий каталог NEWDIR, изменив при этом имя файла на NEWNAME.LEX.

 

Вопросы для самоконтроля







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.