- •Fasm. Работа с файловой системой
- •2. Запись и чтение данных из файла
- •2.1. Организация вывода
- •2.2. Чтение содержания файла
- •2.3. Произвольный доступ к данным файла
- •3. Обслуживание файловой системы
- •5. Практические задания
- •6. Задания для самостоятельной работы
- •6.1. Файловый ввод-вывод
- •6.2. Обслуживание файловой системы
- •Приложение №1. Функции обслуживания файловой системы
- •Приложение №2. Команды консоли ms Windows
Приложение №1. Функции обслуживания файловой системы
Функция 3Ch. Создание файла.
Обращение:
AH=3Сh
CX=атрибуты.
DS:DX=адрес спецификации файла ASCIIZ.
Возврат:
AX=дескриптор.
Ошибка:
CF=1
AX=код ошибки.
Функция 3Eh. Закрытие файла.
Обращение:
AH=3Eh
BX=дескриптор.
Возврат:
CF=1,ошибка.
AX=код ошибки.
Функция 3Dh. Открытие файл.
Обращение:
AH=3Dh
AL=режим доступа.
0- чтение
1- запись
2- запись и чтение
DS:DX- адрес спецификации файла ASCIIZ.
Возврат:
AX=дескриптор.
Ошибка:
СF=1,ошибка.
AX=код ошибки.
Функция 3Fh.Чтение из файла, устройства.
Обращение:
AH=3Fh
BX=дескриптор.
CX=число считываемых байт
DS:DX=адреса буфера ввода.
Возврат:
AX=число переданных байт.
Ошибка:
CF=1,ошибка.
AX=код ошибки.
Функция 40h. Вывод на устройство.
Обращение:
AH=40h
BX=дескриптор.
Стандартные дескрипторы:
1 – вывод CON
2 – стандартная ошибка CON
3 – порт AUX (COM1)
4 – PRN (LPT1)
CX=число выводимых байт
DS:DX=адрес буфера вывода
Возврат:
AX=число переданных байт
Ошибка:
CF=1,ошибка.
AX=код ошибки.
Функция 41h. Удаление файла.
Обращение:
AH= 41h
DS:DX= спецификация файла в формате ASCIIZ.
Ошибка:
CF= 1
AX= код ошибки.
Функция 42h. Установка указателя.
Обращение:
AH=42h
AL=Режим
Режим:
00h-абсолютное смещение от начала файла
01h-знаковое смещение от текущего положения
02h-знаковое смещение от конца файла
BX=дескриптор
CX=старшая часть смещения
DX=младшая часть смещения
Возврат:
DX=старшая часть возвращаемого указателя
AX=младшая часть возвращаемого указателя
Функция 43h. Работа с атрибутами файлов.
Обращение:
AH=43h
AL=тип работы.
00h – получение атрибутов
01h – установка атрибутов
CX=атрибуты файла
01h – чтение
02h – скрытый
04h – системный
20h – архивный
DS:DX=адрес спецификации файла ASCIIZ
Возврат:
СX=атрибуты при AL=00h
Ошибка:
CF=1,ошибка.
AX=код ошибки.
Функция 4Eh. Поиск файла.
Обращение:
AH=4Eh
CX=0
DS:DX=адрес маски поиска файла в формате ASCIIZ
Ошибка:
CF=1,ошибка.
AX=код ошибки.
В качестве маски можно использовать также полное имя файла. При удачном поиске имя найденного файла заносится в PSP программы, начиная с адреса 80h по смещению +1E.
Если нужно отыскать остальные файлы по маске вызывают следом функцию 4F до тех пор, пока не возникнет ошибка вызова функции (СF=1).
Функция 4Ch. Закрытие всех файлов и выход в ДОС.
Обращение:
AH=4Ch
AL=код возврата.
Функция 56h. Переименование файла.
Обращение:
AH= 56h
DS:DX= адрес текущей спецификации файла.
ES:DI= адрес новой спецификации файла.
Ошибка:
CF= 1
AX= код ошибки
Функция 68h. Сброс буферов в файл.
Обращение:
AH= 68h
BX= дескриптор.
Ошибка:
CF= 1
AX= код ошибки.
Функция 39h. Создание каталога.
Обращение:
AH= 39h
DS:DX= адрес пути в формате ASCIIZ.
Ошибка:
CF= 1
AX= код ошибки.
Функция 3Ah. Удаление каталога.
Обращение:
AH= 3Ah
DS:DX= адрес пути в формате ASCIIZ.
Ошибка:
CF= 1
AX= код ошибки.
Функция 3Bh. Смена текущего каталога.
Обращение:
AH= 3Bh
DS:DX= адрес пути в формате ASCIIZ.
Ошибка:
CF= 1
AX= код ошибки
Функция 47h. Получение текущего каталога.
Обращение:
AH= 47h
DL= код дисковода (0= текущий, 1= А и т.д.)
DS:SI= адрес буфера размером 64 байта
Возврат:
имя каталога в буфере в формате ASCIIZ.
Ошибка:
CF= 1
AX= код ошибки.