Техническое Описание (КП - неизвестно что 4)
Описание файла
Файл "Техническое Описание" внутри архива находится в следующих папках: КП - неизвестно что 4, Курсовая, Документация. Документ из архива "КП - неизвестно что 4", который расположен в категории "". Всё это находится в предмете "системное программирование" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Онлайн просмотр документа "Техническое Описание"
Текст из документа "Техническое Описание"
Московский государственный технический университет им. Н.Э.Баумана
_________________________________________________________________
УТВЕРЖДАЮ: | |
Большаков С.А. | "__"_____________2014 Г. |
Домашнее задание по дисциплине ПКШ
Резидентная Программа
Вариант 9
Техническое описание
(вид документа)
писчая бумага
(вид носителя)
12
(количество листов)
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-42 | _____________________ |
Зайков С.А. | "__"_____________2014 г. |
Москва - 2014
________________________________________________________________
СОДЕРЖАНИЕ
1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ
2. МОДУЛЬНАЯ СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
3. ОПИСАНИЕ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
4. ДАННЫЕ И ФАЙЛЫ ДАННЫХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
5. ОСНОВНЫЕ АЛГОРИТМЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
6. ПРОЦЕДУРЫ И ФУНКЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
7. ВЕКТОРА ПРЕРЫВАНИЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ПЕРЕОПРЕДЕЛЯЕМЫЕ В ПРОГРАММЕ
Общие сведения о программном обеспечении
Исходный код, язык: Assembler
Компилятор: Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Сборщик: Turbo Link Version 7.1.30.1 Copyright (c) 1987, 1996 Borland International
Отладчик: Turbo Debugger Version 5.0 Copyright (c) 1988, 1996 Borland International
Исполняемый код: файл KURS_Zaykov.COM (1044 байта)
Модульная структура программного обеспечения
Программа подразделена на 2 части: Резидентную и Нерезидентную.
Резидентная часть обеспечивает работоспособность программы: отслеживает нажатие клавиш. Нерезидентная часть используется для инсталляции резидентной части и для обработки командной строки. Подробное описание указано в документе «Модульная структура программы».
Описание модулей программного обеспечения
Функции инициализирующего модуля:
-
Обеспечение инициализации программы в оперативной памяти в качестве резидента
-
При вызове программы – проверка на наличие параметров вызова программы, их идентификация и в случае введения параметра, воспринимаемого программой, выполнение соответствующего действия
-
Предотвращение загрузки резидентной программы в оперативную память несколько раз без выгрузки
-
Замена системных обработчиков прерываний прерываниями, описанными в программе с сохранением системных для дальнейшего возобновления их работоспособности
-
Осуществление выхода из программы с оставлением ее резидентного модуля в памяти.
Функции резидентного модуля:
-
Осуществление обработки прописанных в инициализирующем модуле прерываний
-
Осуществление выгрузки программы из памяти с восстановлением системных прерываний
-
Отслеживание нажатия клавиш и обработка вызовов прерываний по нажатию клавиш
Для более подробной информации обращаться к документу «Схема взаимодействие с аппаратурой»
Данные и файлы данных программного обеспечения
Файл KURS_Zaykov.com
Резидентная часть:
Имя | Размер | Хранящиеся данные | ||
msg_unload | 17 байт | Текст 'Резидент выгружен' | ||
msg_alreadyLoaded | 21 байт | Текст 'Резидент уже в памяти' | ||
int2Fh_offset | 2 байта | Старый вектор прерывания 2Fh | ||
int2Fh_segment | 2 байта | Старый вектор прерывания 2Fh | ||
int09h_offset | 2 байта | Старый вектор прерывания 09h | ||
int09h_segment | 2 байта | Старый вектор прерывания 09h | ||
int1Ch_offset | 2 байта | Старый вектор прерывания 1Ch | ||
int1Ch_segment | 2 байта | Старый вектор прерывания 1Ch | ||
tmr_msg | 30 байт | Текст 'Зайков Сергей ИУ5-42 Вариант 9' | ||
tmr_active | 1 байт | Код включения таймера | ||
tmr_time | 2 байта | Прошедшее время таймера | ||
tmr_key | 1 байт | Скан-код клавиши F9 | ||
tmr_timeAll | 2 байта | Время, которое должен отсчитать таймер | ||
kurs_active | 1 байт | Код включения курсива | ||
kurs_key | 1 байт | Скан-код клавиши F1 | ||
kurs_symbolIndex | 1 байт | Буква, которую необходимо перевести в курсив | ||
kurs_symbolNew | 16 байт | Вид курсивной буквы И | ||
russ_active | 1 байт | Код включения русификации | ||
russ_key | 1 байт | Скан-код клавиши F2 | ||
russ_scancode | 5 байт | Скан-коды клавиш для русификации | ||
russ_ascii | 5 байт | ANSI значения клавиш для русификации | ||
ignore_active | 1 байт | Код включения ограничения | ||
ignore_key | 1 байт | Скан-код клавиши F3 | ||
ignore_table | 52 байта | Буквы, ввод которых ограничен |
Нерезидентная часть (загрузчик)
Имя | Размер | Хранящиеся данные |
msg_loadSuccess | 17 байт | Текст 'Резидент загружен' |
msg_help | 190 байт | Текст 'Help по работе с резидентом' 'F9 - запустить таймер на 7 секунд с выводом строки' 'F1 - включить/выключить курсив русской буквы И' 'F2 - русифицировать ЛМНОП' 'F3 - заблокировать ввод латинских символов' |
msg_badArgs | 16 байт | Текст 'Ошибка аргумента' |
Основные алгоритмы методов классов ПО
Программа являет собой разветвляющую структуру, основанную на условных и безусловных переходах. Для обработки параметра в командной строке используется циклическая обработка пробелов. Программа разделена на несколько блоков, работа каждого из которых определяется набором условий вызова программы.
Более подробное описание алгоритма работы производится в документе «Блок-схема алгоритма программы».
-
Процедуры и функции программного обеспечения
Название | Входные данные | Выходные данные | Описание |
ignoreLetter | нет | нет | Считывает введенный с клавиатуры символ, проверяет, является ли он латинской буквой и если является – не выводит ее |
russLetter | нет | нет | Считывает скан-коды нажатых клавиш и при выполнении определенных условий, переводит английскую заглавную букву на русский язык |
new_09h | нет | нет | Новый обработчик прерывания 09h |
new_2Fh | нет | нет | Новый обработчик прерывания 2Fh |
new_1Ch | нет | нет | Новый обработчик прерывания 1CH |
init | нет | нет | Выполнение 2х процедур для работы с резидентом |
load | нет | нет | Загрузка резидента |
params | нет | нет | Разбирает введенный после названия программы параметр |