- •Введение
- •1 Формулировка задачи
- •2 Алгоритм программы
- •2.1 Разработка алгоритма основной программы
- •2.2 Разработка алгоритма процедуры чтение из файла uk64.Dat и запись в файл My.Dat до нулевой строки
- •2.3 Разработка алгоритма выбор определённых байтов и битов и записи результата в файл Result.Dat
- •3.2 Используемые команды
- •3.2.1 Команды пересылки и загрузки
- •3.2.2 Арифметические команды
- •3.3 Используемые функции dos
- •3.3.1 Открытие файла
- •3.3.2 Создание файла
- •3.3.3 Чтение данных из файла
- •3.3.4 Закрытие файла
- •3.3.5 Запись в файл
- •3.3.6 Установка указателя файла
- •3.5.3 CreationMy – Создание файла My.Dat
- •3.5.4 NewStr – Чтение из файла uk64.Dat и запись в файл My.Dat до нулевой строки
- •3.5.5 CloseCadr – Закрытие uk64.Dat, создание result.Dat. Выполнение функции установки указателя файла
- •3.5.6 Cursor – Установка указателя на начало файла My.Dat
- •3.5.7 NextStr – выбор определённых байтов и битов и записи результата в файл Result.Dat
- •Список используемых источников
- •Приложение а – Код основной программы
- •Приложение b – Код программы построения графика
3.2 Используемые команды
3.2.1 Команды пересылки и загрузки
мov приёмник, источник – пересылка байта или слова из источника (непосредственное значение, РОН, сегмент. р-р или переменная) в приёмник (РОН, сегмент. р-р, кроме СS или переменная). Содержимое источника при этом не изменяется.
lea приёмник, источник- получение эффективного адреса (смещения) источника. В качестве источника используется имя переменной, а в качестве приёмника – РОН.
рush источник - занести содержимое источника в стек. Выполняет декремент указателя стека, затем заносит содержимое источника на вершину стека, куда указывает SP. В качестве источника могут выступать РОН, сегмент. р-р, непосредственное значение или переменная.
рор приёмник – извлечение данных из стека. Пересылает байт, слово или двойное слово из текущей вершины стека по адресу приемника (РОН, сегмент. р-р, кроме СS, переменная), увеличивая при этом р-р SP на размер приёмника в байтах.
call цель – вызов процедуры или задачи. Передаёт управление близкой или дальней процедуре с запоминанием в стеке адреса точки возврата.
ret – возврат ближний (дальний) из процедуры. Возврат управления из процедуры вызывающей программе.
3.2.2 Арифметические команды
В программе используются некоторые арифметические команды, с помощью которых проводятся вычисления. К арифметическим командам относят следующие:
dec приёмник - уменьшение значения приёмника (регистр или переменная) на 1.
3.3 Используемые функции dos
В программе проводятся действия с различными файлами (Uk64.dat, My.dat, Result.dat). Происходит их закрытие, создание, открытие, запись, считывание из них. Для этого использовались определенные коды, прерывания и функции.
3Dh – функция открытия файла;
3Eh – функция закрытия файла;
3Ch – функция создания файла;
3Fh – функция чтения варианта из файла;
40h – функция записи варианта в файл.
42h – функция установки указателя файла
Для работы с отдельным файлом необходимо указать в регистре BX дескриптор этого файла.
3.3.1 Открытие файла
Вход:
-
AH = 3dH
-
DS:DX = адрес строки ASCIIZ с именем файла
-
AL = режим открытия
Выход:
-
AX = код ошибки если CF установлен и описатель файла если нет ошибки.
Описание:
-
DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имяфайла",0. Если диск и/или путь опущены, они принимаются по умолчанию.
-
файл должен существовать. См. функцию 3cH (создать файл).
-
файл открывается в выбранном режиме доступа / режиме открытия для совместимости с DOS 2.x и избежания сетевых режимов, задаётся:
-
AL = 0 чтобы открыть для чтения
-
AL = 1 чтобы открыть для записи
-
AL = 2 чтобы открыть для чтения и записи
-
указатель чтения/записи устанавливается в 0.
3.3.2 Создание файла
Вход:
-
AH = 3cH
-
DS:DX = адрес строки ASCIIZ с именем файла
-
CX = атрибут файла
Выход:
-
AX = код ошибки если CF установлен и описатель файла если ошибки нет
Описание:
-
DS:DX указывает на строку ASCIIZ в формате: "d:\путь\имяфайла",0. если диск и/или путь опущены, они принимаются по умолчанию.
-
файл создается в указанном (или умалчиваемом) оглавлении
-
файл открывается в режиме доступа чтение/запись
-
следует сохранить описатель (handle) для последующих операций
-
если файл уже существует:
-
при открытии файл усекается до нулевой длины
-
если атрибут файла - только чтение, открытие отвергается (атрибут можно изменить функцией 43H)