Теоретические указания
Создание, открытие и закрытие файла: 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 Все права принадлежат авторам размещенных материалов.
|