Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
В СХ, а точнее, в СL – аттрибут файлаСодержание книги
Поиск на нашем сайте 0 – отсутствие аттрибутов 1 – только чтение 2 – скрытый файл 4 – системный 8 – метка тома 16 = 10h – подкаталог 32 = 20h – архив – этот разряд сброшен для всех файлов, которые изменялись после последнего копирования.
После выполнения всех необходимых действий по созданию файла, функция 3Сh возвращает в регистре АХ дескриптор созданного файла, которым могли в дальнейшем пользоваться для записи в файл или чтения из него. Если файл с заданным именем уже существовал, функция 3Сh фактичеки уничтожит имеющийся файл и создаст новый с тем же именем. Так как АХ используется для возврата как логического номера, так и кода ошибки, то в качестве признака ошибки необходимо использовать флаг CF (флаг переноса). Возможны коды возврата: 3 – путь не найден 4 – нет свободного логического номера 5 – отказ в доступе – либо в каталоге нет места Для новой записи, либо уже существующий файл защищен от записи и не может быть открыт для вывода данных.
Функция 3Dh - открыть файл (OPEN)
DS:DX – адрес строки, содержащей путь и имя файла AL - код режима открытия Рассмотрим только разряды 0¸2.
Бит 7 – бит наследования Биты 4-6 – режимы совместного использования. Коды возврата в АХ: 2 – файл не найден 3 – путь не найден 4 – нет свободного логического номера файла 5 – отказ в доступе 12 – недопустимый код доступа
Eh – закрытие файла Логический номер в ВХ. Код ошибки 6 – ошибочный логический номер.
Fh – читать данные изфайла или устройства Логический номер - ВХ. Число байт – СХ Адрес буфера – DS:DX В АХ возвращается число действительно считанных байтов. Если в АХ 0, то программа пыталась считать данные за концом файла. Код ошибки: 5 – отказ в доступе 6 – ошибочный логический номер.
40h – вывести данные в файл или на устройство (WRITE) Логический номер - ВХ. Число байт – СХ Адрес выводимых данных – DS:DX В АХ возвращается число действительно выведенных байтов. Проверка состоит их 2х шагов 1) СF 2) AX =? CX. Если АХ<СХ – на диске не хватило места.
H – удалить файл. DS:DX – адрес строки, определяющей имя файла. Заполнители? и * в имени файла использовать нельзя.
H – переместить указатель текущей позиции в файле. Логический номер – ВХ. Новое положение указателя задается путем загрузки в регистр AL исходного положения указателя, а в пару регистров СХ:DX – число байтов, на которое необходимо переместить указатель. Загружаемое в пару регистров СХ:DX смещение в байтах – это 32-битовое число без знака. В СХ – старшая часть, в DX – младшая. Если смещение меньше 65535, то СХ = 0. Исходное положение в АL задается с помощью так называемого кода метода: АL = 0 – смещение берется от начала файла и указатель изменяется на СХ:DX от этой точки АL = 1 – смещение берется от текущей позиции АL = 2 – смещение берется от конца файла. В последнем случае в паре регистров СХ:DX обычно ноль, чтобы определить текущий размер файла. Если задать смещение 0 и запросить метод 0 – то возврат в начало файла. Коды ошибок: 1 – ошибочный номер функции 6 – ошибочный логический номер
Пример
; создание файла MOV AH, 3Ch; Функция CREATE MOV CX, 0; Без аттрибутов MOV DX, OFFSET Filename; Адрес имени Файла INT 21h; ВЫзов DOS Jc error1; ошибка Mov Handler, AX; сохраним дескриптор ; запись строки в файл MOV AH, 40h; Функция записи MOV BX, Handler; Дескриптор MOV CX, BufLen; Число записываемых байтов MOV DX, OFFSET Buf; Адрес буфера INT 21h Jc error2 ; закрытие файла MOV AH, 3Eh; MOV BX, Handler INT 21h Jc error3 ; завершение программы MOV AX, 4C00h; Функция завершения INT 21h error1: … error2: … error3: …
; данные Buf DB ‘0123456789’; Данные, записываемые в файл BufLen EQU $ - Buf; Длина данных. $ - текущее значение счетчика Handler DW?; Ячейка для дескриптора Filename DB ‘D:\test\myfile.001’,0; ASCIIZ строка спецификации файла В простых программах файлы можно не закрывать, так как функция завершения 4Ch закрывает все открытые файлы программы.
Рассмотрим пример программы с имеющимся файлом: ; Открыть файл MOV AH, 3Dh; функция OPEN MOV AL, 2; Доступ для чтения/записи MOV DX, OFFSET Filename; Адрес имени файла INT 21h Jc error1 MOV Handler, AX; Сохранение дескриптора ; Пытаемся прочитать 65535 байт MOV AH, 3Fh; Функция READ MOV BX, Handler; Дескриптор MOV CX, 65535; Сколько читать MOV DX, OFFSET BufIn; Сюда читать INT 21h Jc error2 MOV CX, AX; сколько реально прочитано ; Вывод прочитанного на экран MOV AH, 40h; функция WRITE MOV BX, 1; Дескриптор стандартного вывода MOV DX, OFFSET BufIn; отсюда выводить (СХ байт) Int 21h ; завершение программы MOV AX, 4C00h; Функция завершения INT 21h error1: … error2: … error3: … ; Данные BufIn DB 256 dup (‘ ‘); буфер ввода Handler DW? Filename DB ‘D:\test\myf.001’,0; спецификация файла
В данном случае на экран. Удобнее вывести с помощью 40h, так какмы не занем длину выводимого сообщения, то есть не знаем, куда поставить ‘$’ для функции 9h.
Анализ системных ошибок MOV AH, Function; Номер функции ; Заполнение регистров параметрами, необходимыми для ; выполнения данной функции INT 21h JC Error; флаг СF установлен ; Нет, нормальное продолжение программы ………….. Error: …. ; Да, анализ ошибок в АХ CMP AX, 1 JE Error1 CMP AX, 2 JE Error2 …..
43h – получить, установить аттрибуты файла 56h – переименовать файл 57h – получить/установить дату и время последнего изменения файла
В DOS 3.00 5Ah – создать временный файл CX - аттрибут DS:DX – имя пути, должно заканчиваться ‘ \’ Строка должна иметь длину на 12 байт больше длины имени пути, чтобы DOS могла бы дополнить уникальным именем файла. 5Bh – создать новый файл В отличие от 3Сh, если файл уже существует, то 5Bh сообщает об ошибке.
5Сh – блокировать/разблокировать доступ к файлу.
|
||||||||||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 319; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.119 (0.008 с.) |