Техническое Описание (КП - мониторинг файлов)
Описание файла
Файл "Техническое Описание" внутри архива находится в следующих папках: КП - мониторинг файлов, anka, documentation. Документ из архива "КП - мониторинг файлов", который расположен в категории "". Всё это находится в предмете "системное программирование" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "Техническое Описание"
Текст из документа "Техническое Описание"
Московский Государственный Технический Университет имени Н.Э. Баумана.
УТВЕРЖДАЮ
"___"__________2006 г.
_____________________
(Виноградова М.В.)
Программа “Регистратор открытия/закрытия файлов"
Техническое описание
(тип документа)
Бумага формата А4
(вид носителя)
4
(количество листов)
ИСПОЛНИТЕЛЬ
" " 2006 г.
_____________________
(Зелинская А.Д.)
Москва – 2006
СОДЕРЖАНИЕ
-
ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ…………………………. 3
-
МОДУЛЬНАЯ СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ…………………… 3
-
ДАННЫЕ И ФАЙЛЫ ДАННЫХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ……………….. 3
-
ОСНОВНЫЕ АЛГОРИТМЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ…………………… 4
-
ПРОЦЕДУРЫ И ФУНКЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ…………………… 4
-
ВЕКТОРА ПРЕРЫВАНИЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ…………………….. 6
1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
Язык программирования: Ассемблер
Компилятор: Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Компоновщик: Turbo Link Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
Размер исполняемого файла (opcl.com) 1261 байта.
Размер резидентной части программы 656 байт.
2. МОДУЛЬНАЯ СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Программа состоит из одного исполняемого модуля (OPCL.COM). Кроме того, для работы с программой необходима утилита UNLDTSR.exe
3. ДАННЫЕ И ФАЙЛЫ ДАННЫХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Данные резидентной части | ||
Old_21h | DWORD | Адрес старого обработчика прерывания 21h (прерывание DOS) |
Old_2Dh | DWORD | Адрес старого обработчика прерывания 2Dh (используемого в качестве мультиплексного) |
MesCRLF | Byte Array | Символы возврата каретки и перевода строки |
MesNew | Byte Array | Сообщение ‘Attention! File was opened: ’ |
MesNewln | equ | Длина сообщения MesNew |
MesCl | Byte Array | Сообщение ‘Attention! The file was closed:’ |
MesClln | equ | Длина сообщения MesCl |
MesErr | Byte Array | Сообщение ‘Error! Impossible to open file log.txt ’ |
Данные нерезидентной (инициализирующей) части | ||
UnloadFlag | Byte | Флаг, показывающий необходимость выгрузить программу |
Temp_21h | DWORD | Временный адрес обработчика прерывания 21h (прерывание DOS) |
Temp_2Dh | DWORD | Временный адрес старого обработчика прерывания 2Dh (используемого в качестве мультиплексного) |
MesLoaded | Byte Array | Сообщение о том, что программа загружена резидентно в память |
MesUnloaded | Byte Array | Сообщение о том, что программа успешно выгружена из памяти |
MesWrongParam | Byte Array | Сообщение о неверном параметре командной строки |
MesHelp | Byte Array | Строка с подсказкой по использованию данной программы |
MesOtherLoaded | Byte Array | Сообщение о невозможности выгрузки программы из памяти |
handle | DWORD | Дескриптор |
tailHelp | Byte Array | Содержит строку ‘/?’ |
String | Byte Array | Строка, записывающаяся в log-файл при открытии |
Stringln | equ | Длина String |
String1 | Byte Array | Строка, записывающаяся в log-файл при закрытии |
String1ln | equ | Длина String1 |
opclfile | DWORD | В ней хранится имя открытого файла |
Newfile | Byte Array | Содержит имя log-файла |
-
ОСНОВНЫЕ АЛГОРИТМЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Описание алгоритма процедуры загрузки резидентной части в память (Init):
-
Проверить командную строку на присутствие параметров
-
Проверить загружена ли программа в память
-
Если отсутствуют параметры, а программа загружена – выгрузка
-
Если отсутствуют параметры, а программа незагружена – загрузить резидентную часть программы в память
-
Если отсутствуют параметры, а программа загружена – проверить, не переопределены ли вектора прерываний другой программой
-
Если вектора переопределены – ошибка
-
Если вектора не переопределены – выгрузить резидентную часть программы
6. ПРОЦЕДУРЫ И ФУНКЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Название | Входные данные | Выходные данные | Описание |
New_2Dh | AH=0C8h AL=00h| AL=01h | AL=0FFh | AL=99h | Если AH==0C8h и AL==00h, то устанавливает AL в 0FFh и завершает обработку прерывания, возвращая управление пользователю. Если AH==0C8h и AL==01h, то восстанавливает старые обработчики прерываний. Если AH и AL содержат какие-либо другие значения – просто вызывает старый обработчик данного прерывания. |
New_21h | AH=3Ch| AH=5Bh | AH=5Ah | AH=41h | AX=7141h | AX=716Ch | Выведено сообщение или нет | Если AH=3Ch | AH=5Bh | AH=5Ah | AH=41h | AX=7141h | AX=716Ch , то выводится соответствующее сообщение о создании или удалении файла. Потом вызывает старый обработчик данного прерывания. Если не одно из условий не выполнено - просто вызывает старый обработчик данного прерывания. |
OpenFile | Адрес имени файла в DS:BX | Вывод сообщения | Выводится сообщение об открытии файла, содержащее имя этого файла. Это сообщение записывается в файл LOG.txt |
CloseFile | Адрес имени файла в DS:BX | Вывод сообщения | Выводится сообщение о закрытии файла, содержащее имя этого файла. Это сообщение записывается в файл LOG.txt |
PrintStr | Адрес строки в DS:BX | Вывод строки | Выводится строка символов средствами BIOS. |
CRLF | Нет | Вывод символа перевода строки | Выводится символ перевода строки средствами BIOS. |
Init | Командная строка | Загрузка программы в память, выгрузка программы из памяти или сообщение об ошибке | См. описание алгоритма процедуры Init |
CheckOther | Адреса векторов прерываний и адреса новых процедур обработки прерываний | Вывод сообщения | Если адреса векторов прерываний и адреса новых процедур обработки прерываний, то вывод сообщения об ошибке и выход из программы. |
SaveOldVectors | Адреса векторов прерываний | Old_2Dh Old_21h | Адреса векторов прерываний сохраняются в Old_2Dh и Old_21h |
SetNewVectors | Адреса новых процедур обработки прерываний | Новые процедуры обработки прерываний для векторов 21h и 2Dh | Для прерываний 21h и 2Dh устанавливаются новые процедуры обработки прерываний |
CmdLine | Командная строка | Вывод сообщения | Если в командной строке имеется неизвестный ключ, то выводится сообщение об ошибке. А если имеется ключ ‘/?’, то выполняется соответствующее действие. См. процедуру ScanHelp. |
ScanUnload | Командная строка | UnloadFlag | Если в командной строке нет параметров, то UnloadFlag:=1 иначе UnloadFlag:=0. |
ScanHelp | Командная строка | Вывод справки о программе | Если в командной строке имеется ключ ‘/?’, то выводится справка по работе с программой и программа завершается |
Help | Нет | Вывод справки о программе | Выводится справка по работе с программой и программа завершается |
7. ВЕКТОРА ПРЕРЫВАНИЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
21h - прерывание DOS
2Dh - прерывание, используемое в качестве мультиплексного
5