Rep повтор
Команда: REP КОР (команда обробки рядків) .
Логіка: while CX < > 0 ; для КОР MOVS, LODS або STOS
виконати КОР
CX = CX - 1
while CX < > 0 ; для КОР CMPS або SCAS
CX = CX - 1
if ZF = 0 то закінчуємо цикл .
REP - це префікс, що може бути вжитий перед будь-якою КОР (CMPS, LODS, MOVS, SCAS і STOS). Префікс REP змушує виконуватися наступну за ним КОР у повторному режимі доти, доки CX не стане рівним 0; CX зменшується на 1 після кожного виконання КОР. Для КОР CMPS і SCAS циклічний повтор переривається також, якщо ознака нульового результату ZF виявляється скинутою після чергового виконання КОР. КОР, яка повторюється і була перервана між повторами, буде коректно відновлена після повернення з переривання. Однак, якщо перед КОР знаходяться також інші префікси у доповнення до REP, то всі префікси, крім того, що безпосередньо знаходиться поперед команди, будуть втрачені. Якщо потрібно використовувати команду з декількома префіксами одночасно, то належить заборонити переривання на час виконання команди.
13. Информация на дисках содержится в файлах. Файл - это поименованная область на диске или
на другом носителе информации. В файлах могут храниться тексты программ, документы, готовые к выполнению программы и любые другие данные.
В операционной системе DOS обозначения файлов состоят из двух частей: имени и расширения. В имени файла может быть от 1 до 8 символов. В расширении файла может быть от 1 до 3 символов. Между именем и расширением ставится точка.
Когда требуется выполнить команды не с одним, а с группой файлов, используются маски файлов. Символ "*" означает любые символы в любом количестве. Символ "?" означает любой один символ.
Команды работы с файлами
копирование файла
создание текстового файла
вывод файла на печать
вывод файла на экран
переименование файла
удаление файла
склейка файлов
14. Создание, открытие, закрытие и удаление файла
Создание и открытие файла в Win32 производится одной функцией CreateFile. HANDLE CreateFi1eCLPCTSTR ipFileName, DWORD dwDesiredAccess. DWORD dwShareMode. LPSECURITY_ATTRIBUTES ipSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes. HANDLE hTemplateFile):
Параметры данной функции имеют размер двойного слова.
Удаление файла
Для удаления файла применяется функция Del eteFi I e:
BOOL DeleteFile(LPCTSTR TpFileName);
У нее единственный параметр — указатель на ASCIIZ-строку с именем (путем) удаляемого файла. Перед удалением файл необходимо закрыть, хотя в некоторых версиях Windows это не является обязательным.
При удачном завершении функция возвращает ненулевое значение в регистре ЕАХ. В случае неудачи функция возвращает в регистре ЕАХ значение NULL.
15. Чтение-запись в файле производятся с текущей файловой позиции, на которую указывает
файловый указатель. Функция 42h MS DOS предоставляет гибкие возможности как для начального, так и для текущего позиционирования файлового указателя для последующей операции ввода-вывода.
Вход: АН = 42h; BX = дескриптор файла, полученный при его открытии; AL = начальное положение в файле, относительно которого производится операция чтения-записи (OOh — смещение (беззнаковое значение в CX:DX) от начала файла; O1h — смещение (значение со знаком в CX:DX) от текущей позиции в файле; 02h — смещение (значение со знаком в CX:DX) от конца файла); CX:DX = смещение новой позиции в файле относительно начальной.
Выход: CF = 0 — DX:AX = значение новой позиции в байтах относительно начала файла; CF = 1 — АХ = код ошибки: 1 — неверное значение в AL; 6 — недопустимый дескриптор файла.
Методы позиционирования, заданные величиной в AL, по-разному трактуют значение в паре регистров CX:DX. Метод al = 00 трактует значение в CX:DX как абсолютное. Два других метода (al = 01 и al = 02 ) трактуют содержимое CX:DX как значение со знаком. Необходимо быть внимательным при выполнении операции позиционирования для избежания последующих ошибок при операции чтения-записи. Так, значение в СХ: DX, позиционирующее указатель, может указывать за пределы файла. При этом выделяются два случая:
значение в СХ: DX указывает на позицию перед началом файла — в этом случае последующая операция чтения-записи будет выполнена с ошибкой;
значение в СХ:DX указывает на позицию за концом файла — в этом случае последующая операция записи приведет к расширению файла в соответствии со значением в CX:DX.
Запись в файл производится функцией 40h с текущей позиции файлового указателя. Вход: АН = 40 h; ВХ = дескриптор файла; СХ = количество байтов для записи;
DS:DX — указатель на область, из которой записываются данные. Выход: CF = 0 — АХ = число действительно записанных байтов в файл или устройство; CF = 1 — АХ = код ошибки: 5 — в доступе отказано; 6 — недопустимый дескриптор.
Если при вызове функции 40h регистр СХ равен нулю, то данные в файл не записываются и он усекается или расширяется до текущей позиции файлового указателя. Если СХ не равен нулю, то данные в файл записываются начиная с текущей позиции файлового указателя. Операция записи также продвигает файловый указатель на число действительно записанных байтов.
Положение файлового указателя можно изменять явно с помощью функции 42h