Смекни!
smekni.com

Удаление слов использованием резидентной программы (стр. 2 из 3)

Программный продукт не требует дополнительных средств для переноса. Весь процесс переноса состоит в копировании исполняемого файла на электронный носитель информации, переносе их на другой компьютер и копирования с носителя в отдельную папку на постоянном внешнем запоминающем устройстве ЭВМ.

1.5 Требования к программной документации

Программная документация должна включать следующие документы:

1) техническое задание;

2) технический проект;

3) рабочий проект,

4) тесты.

В приложении к документу "Рабочий проект" должен быть приведен листинг исходных текстов программного изделия.

1.6 Стадии и этапы разработки

Выполнение разработки должно включать три стадии:

1) техническое задание;

2) технический проект;

3) рабочий проект.

На стадии "Техническое задание" проводится постановка задачи, разработка требований к программному изделию, изучение литературы по задаче и оформление документа "Техническое задание".

На стадии "Технический проект" проводится анализ данной предметной области, выделение основных взаимодействий между пользователем, выяснение структуры программного комплекса, активной программой и резидентом. В заключение данного этапа оформляется документ "Технический проект".

На стадии "Рабочий проект" проводится разработка схем алгоритмов для каждого из функциональных модулей, физическое проектирование программного изделия, разработка тестов, тестирование и отладка программных модулей. В заключение данного этапа оформляется документ "Рабочий проект".

1.7 Порядок контроля и приемки

Приемка программного изделия осуществляется при сдаче документально оформленных этапов разработки и проведении испытаний на основе установленных тестов. Тесты должны быть разработаны на этапе рабочего проектирования программного изделия.


2. Технический проект

2.1 Анализ области

Программа содержит резидентную часть. Вследствие этого необходима проверка на присутствие резидентной части в памяти и корректной выгрузки резидента.

Стандартное использование программного продукта состоит в следующей последовательности действий пользователя:

1) загрузка резидента, запуск «residenta.com», при этом, чтобы предотвратить повторную загрузку, проверяется присутствие резидента в памяти;

2) ввод данных;

3) выполнение работы;

4) завершение работы резидента, с освобождением занимаемой им памяти;

2.2 Структура программы

Программа состоит из одного модуля.

Модуль residenta.asm, который содержит в себе все функции транзитной и резидентной части.

2.2.1 Модуль resident.asm

Транзитная часть – программа, которая исполняет следующие функции:

1) проверка на повторную загрузку;

2) загрузка резидента в память;

3) сохранение входных параметров;

4) выгрузка резидента из памяти.

Резидентная часть – программа, которая исполняет следующие функции:

1) выполнение функции резидента, а именно вывод содержимого файла;

Входные данные

Входных данных для транзитной части нет.

Входными данными для резидентной ввод с клавиатуры.

Выходные данные

Для транзитной части в процессе ее работы выходными данными будет сообщение о загрузке резидента в память: «Loading».В резидентной части выходными данными содержимое файла после удаления слова.

Процессы обработки

Процесс обработки транзитной части заключает в себе:

1) проверка на повторную загрузку будет осуществляться путем переопределения одной из функций мультиплексного прерывания 2Fh.

2) передача управления резидентной части посредством вызова прерывания int 66h;;

3) переопределение мультиплексного прерывания int2Fhдля выгрузки резидента из памяти;

Методические ограничения

В модуле не используется методологически сложных операций и все процессы обработки являются в общем виде работой с прерываниями и памятью компьютера.

Аппаратные ограничения

Для работы программного модуля необходимо дисковое пространство в размере не менее 5 кБ, свободная оперативная память в размере не менее 1МБ, а также микропроцессор 80486 или выше.


3. Рабочий проект

3.1 Введение

В данном программном изделии используются технологии работы с использованием портов ввода вывода (средства BIOS).

3.2 Назначение разработки

Программное изделие можно использовать в работе с операционной системой DOS. При помощи данного программного продукта можно производить удаление слов из текстового файла без учета регистра, считая пробел – разделителем.

3.3 Требования к программе или программному изделию

3.3.1 Стандарты

Программное изделие выполнено согласно стандартам, указанным в техническом задании в пункте 1.4.1.

3.3.2 Требования к составу и параметрам технических средств

Программное изделие работает на компьютере, совместимом с IBMPC. Программа не требовательна к оперативной памяти.

Вся информация вводится при помощи клавиатуры цифровые клавишы алфавитно-цифрового блока. Контроль информации осуществляется при помощи дисплея с видеорежимом 40/80-25.


3.3.3 Требования к информационной и программной совместимости

Программное изделие написано на языке Ассемблер для компилятора TurboAssemler3.1, и работает под управлением операционной системы MS-DOSи виртуальной машины DOSв операционной системе Windows95 – XP.

3.3.4 Результирующие компоненты изделия

Согласно пункту 1.4.6. технического задания все файлы программы предоставляются на дискете формата 3,5 дюйма.

3.3.5 Безопасность и секретность

Данный программный продукт не является секретным и не требует защиты, поэтому ограничение доступа к нему не предусматривается.

3.3.6 Рестарт

В случае, когда программа по внешним причинам перестает отвечать на запросы пользователя, необходимо:

· в системе DOSнажать комбинацию клавиш «CTRL+ALT+DEL» и средствами операционной системы прервать программу

· в виртуальной машине DOSоперационной системы Windowsпросто закрыть окно.

· и затем заново запустить ее согласно пункту 1.4.8. технического задания.

3.4.1 Структура модуля

Общая статическая схема резидента

Общая статическая схема резидента представлена на рисунке 3.1.


Рисунок 3.1 – Общая статическая схема резидента

3.4.2 Описание подпрограмм

Подпрограмма new_2Fh

Входные данные: ах – номер функции.

Выходные данные: нет.

Процессы обработки: происходит сравнение регистров общего назначения на предмет наличия определенного значения. Если значение регистра ax равно 0c801h, то производится выгрузку резидентной части и восстановление старого прерывания. В противном случае, вызывается системный обработчик прерывания int 2fh.

Используемые регистры: AX, DX, DI, DS, ES, CS.

Используемые внешние переменные: old_2Fh.

Подпрограмма iniz

Входные данные: нет.

Выходные данные: нет.

Процессы обработки: являясь секцией инициализации резидента, процедура осуществляет проверку на повторную загрузку резидента, используя внешнюю переменную, с уникальным значением, инсталляцию резидента в память, передачу данных резиденту с использованием вектора свободного прерывания, передачу управления резиденту посредством передачу управления резиденту посредством вызова int 66h , вывод информационных сообщений.

Используемые регистры: AX, BX, DX, DS, ES, CS, DS, DI.

Используемые внешние переменные: old_2Fh, mes.

Блок-схема подпрограммы представлена на рисунке 3.4.

Рисунок 3.2 Блок-схема подпрограммы iniz

Описание используемых функций DOS

· Функция 09hint21h– вывод строки на экран

Вход:

AH= 09h;

DS:DX– адрес выводимой строки, которая должна заканчиваться служебным символом '$'.

· Функция 0ah int 21h ввод строки произвольной длины:

Вход:

AH= 0Ah.

Выход: введенная строка по адресу Buffer.

· Функция 39h int21hсоздание директории D:\temp

Вход:

АН=39h

DS:DX адрес ASCIZ-строки с путем, в котором все директории, кроме последней, существуют. Для DOS 3.3 и более ранних версий длина строки не должна превышать 64 байта.

Выход: CF=0 если директория создана

CF=1 и АХ = 3, если путь не найден

CF=1 и АХ = 5, если доступ запрещен.

· Функция 5Bhint21h– Создание файла

Вход:

AH=5Bh.

· Функция 40h int21h– запись в file.

Вход:

AH= 40h.

DS:DX адрес начала строки

Выход:

CF= 0 AXчисло записанных байтов

CF=1код ошибки.

· Функция 3eh int21h– закрытие file

Вход:

AH= 3Eh;

BX– идентификатор файла;

Выход:

CF=0 еслине произошла ошибка

CF=1и АХ = 6, если неправильный идентификатор.

· Функция 3dh int21h– открыть существующий файл

Вход:

AH= 3Dh;

DS:DXадрес ASCIZ-строки с полным именем файла

Выход:

CF=0и АХ = идентификатор файла, если не произошла ошибка CF=1и АХ = 2, если файл не найден

CF=1и АХ = 3, если путь не найден

CF=1и АХ = 4, если слишком много открытых файлов

CF=1и АХ = 5, если доступ запрещен

CF=1и АХ = 0Сh, неправильный режим доступа.

· Функция 3Fhint21hчтение файла

Вход:

АН=3Fh

BX идентификатор файла

CX число байтов

DS:DX адрес буфера для приема данных.

Выход:

CF=0и АХ = число считанных байтов, если не произошла ошибка

CF=1и АХ = 05h, если доступ запрещен

CF=1и АХ = 6, если неправильный идентификатор.

· Функция 41hint21h– удаление файла

Вход:

AH= 41h

DS:DXадрес ASCIZ-строки с полным именем файла.

Выход:

CF=0 если файл удален

CF=1и АХ = 02h, если файл не найден

CF=1и АХ = 03h, если путь не найден

CF=1и АХ = 05h, если доступ запрещен.

· Функция 56hint21h– Переименовать файл.