Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



КУРСОВАЯ РАБОТА

по дисциплине «Системное программное обеспечение»

на тему «Резидентный генератор звука»

Специальность (направление подготовки ) ПО ВТ

_______________________________________________________________________

Автор работы (проекта) А.В. Крипачёв ____________________

Группа ПО-01

Руководитель работы (проекта) М.В. Бородин ____________________

Работа (проект) защищена ____________________

Оценка ____________________

Председатель комиссии________________ __________________

Члены комиссии: _____________________________________________________________________________

_____________________________________________________________________________

_____________________________________________________________________________

Курск, 2011г.


Министерство образования и науки Российской Федерации

Государственное образовательное учреждение

«Юго-Западный государственный университет»

Кафедра ПО ВТ

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ

Студент Крипачёв А.В. шифр 230105 группа ПО-01

1.Тема Резидентный генератор звука

2. Срок предоставления работы (проекта) к защите «21» декабря 20 09 г.

3. Исходные данные (для проектирования, для научного исследования):

Данные введенные пользователем

4. Содержание пояснительной записки курсовой работы (проекта):

4.1. Содержание

4.3. Техническое задание

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

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

4.6. Список использованных источников

4.7. Приложение

5. Перечень графического материала:

_____________________________________________________________

_____________________________________________________________

Руководитель работы (проекта) 25.11.2009М.В. Бородин

Задание принял к исполнению 10.09.2009


Содержание

1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ. 2

1.1 Введение. 2

1.2 Основания для разработки. 2

1.3 Назначение разработки. 2

1.3.1 Функциональное и эксплуатационное назначение изделия. 2

1.3.2 Перечень требований пользователя к программному продукту. 2

1.3.3 Рассмотренные альтернативы.. 2

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

1.4.1 Стандарты.. 2

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

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

1.4.4 Требования к функциональным характеристикам. 2

1.4.4.1 Требования к структуре программы.. 2

1.4.4.2 Входные данные. 2

1.4.4.3 Выходные данные. 2

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

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

1.4.6 Носители информации. 2

1.4.7 Безопасность и секретность. 2

1.4.8 Рестарт. 2

1.4.9 Удобства эксплуатации. 2

1.4.10 Мобильность. 2

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

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

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

2 ТЕХНИЧЕСКИЙ ПРОЕКТ. 2

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

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

2.2.1 Модуль cur.asm.. 2

2.2.1.1 Входные данные. 2

2.2.1.2 Выходные данные. 2

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

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

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

3 РАБОЧИЙ ПРОЕКТ. 2

3.1 Введение. 2

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

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

3.3.1 Стандарты.. 2

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

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

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

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

3.3.6 Рестарт. 2

3.4 Описание модуля cur.asm.. 2

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

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

3.4.1.2 Схема передачи управления. 2

3.4.1.3 Схема передачи данных. 2

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

3.4.2.1 Подпрограмма new_2Fh. 2

3.4.2.2 Подпрограмма StrToInt 2

3.4.2.3 Подпрограмма iniz. 2

3.4.2.4 Подпрограмма resident 2

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

3.4.2.6 Текст подпрограмм. 2

3.5 Тестирование. 2

3.5.1 Цель испытаний. 2

3.5.2 Тесты.. 2

3.5.2.1 Тест №1. 2

3.5.2.2 Тест №2. 2

3.5.2.3 Тест №3. 2

3.5.2.4 Тест №4. 2

Список использованных источников. 2

Приложения. 2


1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ

1.1 Введение

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

Для программного продукта данной курсовой работы операционной средой является система MS-DOS и используемым языком программирования – Ассемблер, как наиболее удобный для решения небольших задач низкого уровня при непосредственном взаимодействии с системой; он позволяет напрямую обращаться к переменным и областям данных среды.

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

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

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

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

1.2 Основания для разработки

Данный программный продукт разрабатывается как задание на курсовую работу по дисциплине "Системное программное обеспечение".

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

1.3.1 Функциональное и эксплуатационное назначение изделия

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

Резидентная программа представлена в виде COM-программы.

Резидентные данные должны располагаться после резидентной части, транзитные данные – перед транзитной частью.

Передача управление резиденту должна осуществляться посредством вызова его как подпрограммы методом call.

Передача данных должна осуществляться через прерывание int 60h.

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

Выгрузка резидента должна осуществляться также из тела резидента посредством прерывания int 2Fh.

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

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

1.3.2 Перечень требований пользователя к программному продукту

Данный программный продукт должен предоставлять простой интерфейс командной строки для программы и предоставлять возможность при помощи клавиш клавиатуры выгружать резидента.

1.3.3 Рассмотренные альтернативы

При постановке задачи на разработку данного программного изделия альтернативы не рассматривались в связи с конкретными требованиями к программе (см. п. 1.4.3). Были выбраны:

· программно-аппаратная платформа: MS-DOS в виде эмуляции в ОС Windows XP на базе микропроцессора фирмы Intel.

· средства разработки: компилятор Borland Turbo Assembler v.3.1, компоновщик Borland TLINK v.5.1, Borland Turbo Debugger v.3.1.

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

1.4.1 Стандарты

Разработка программной документации и программного изделия должна производиться согласно ГОСТ 19.701-90, ГОСТ 2.304-88. Единая система программной документации.

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

Программное изделие должно работать на компьютере, совместимом с IBM PC. Для переноса программы не должны требоваться специальные программные и аппаратные средства.

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

Программное изделие должно быть написано на языке Ассемблер для компилятора TurboAssemler 3.1, и работать под управлением операционной системы MS-DOS 5.1 и виртуальной машины DOS в операционных системах Windows.

1.4.4 Требования к функциональным характеристикам

Требования к структуре программы

Система должна представлять собой одну программу.

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

Входными данными являются:

1) состояние клавиатуры (введенное сочетание клавиш);

2) частота звука, длительность звука, пауза.

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

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

1) пояснительные сообщения следующего характера:

· состояния отсутствия или выгрузки резидента;

· состояние загрузки или попытки повторной загрузки резидента;

· информация о возможных вариантах действия пользователя.

2) генерация звуковых сигналов.

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

Процессы обработки должны разделяться на следующие группы:

· проверка наличия резидента в памяти;

· установка резидента в память;

· вызов резидента;

· выгрузка резидента из памяти;

· генерация звуковых сигналов;

· информирование пользователя о процессах работы программы на разных этапах ее выполнения.

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

В комплект поставки программного изделия войдёт исполняемый файл «cur.com», содержащий транзитную и резидентную часть программного комплекса.

1.4.6 Носители информации

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

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

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

1.4.8 Рестарт

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

1.4.9 Удобства эксплуатации

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

1.4.10 Мобильность

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

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

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

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

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

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

4) тесты.

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

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

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

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

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

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

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

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

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

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

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


2 ТЕХНИЧЕСКИЙ ПРОЕКТ

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

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

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

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

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

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

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

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

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

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

2.2.1 Модуль cur.asm

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

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

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

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

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

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

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

2) проверку нажатых пользователем клавиш клавиатуры.

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

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

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

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

Для транзитной части в процессе ее работы выходными данными будут сообщения о загрузке резидента в память: «Rezident is load.», о невозможности повторной загрузки резидента с последующим предложением инициализации резидента клавишами Shift и CapsLock: «Rezident is already load!!!. For RUN please press Shift or Caps Lock.», а также сообщение при выгрузки резидента «Rezident is unload.».

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

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

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

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

2) сохранение адреса резидентной части программы в области межзадачных связей DATALINK;

3) анализ состояния флагов клавиатуры, с целью обнаружения нажатия пользователем клавиш Shift или CapsLock. Ожидание ввода пользователем частоты звука, длительности звука и паузы, и сохранение их адреса в векторе прерываний int 60h. Передача управления резидентной части посредством вызова ее как подпрограммы;

4) переопределение мультиплексорного прерывания int 2Fh для выгрузки резидента из памяти;

5) выгрузка резидентной части из памяти в случае соответствующей команды пользователя с клавиатуры.

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

1) генерацию звукового сигнала, заданной частоты, длительности и паузы;

2) проверку нажатых пользователем клавиш клавиатуры.

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

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

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

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


3 РАБОЧИЙ ПРОЕКТ

3.1 Введение

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

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

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

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

3.3.1 Стандарты

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

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

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

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

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

Программное изделие написано на языке Ассемблер для компилятора TurboAssemler 3.1, и работает под управлением операционной системы MS-DOS и виртуальной машины DOS в операционной системе Windows 95 – 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 Описание модуля cur.asm

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

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

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

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

Схема передачи управления

Схема передачи управления представлена на рисунке 3.2.

Рисунок 3.2 ­– Схема передачи управления

Схема передачи данных

Схема передачи данных представлена на рисунке 3.3.

Рисунок 3.3 ­­– Схема передачи данных

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

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

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

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

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

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

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

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

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

Выходные данные: ах – число.

Процессы обработки: производится ввод десятичного числа с клавиатуры и преобразование его к шестнадцатеричному виду. Ввод числа осуществляется посимвольно. Итоговый результат записывается в регистр ax.

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

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

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

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

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

Процессы обработки: являясь секцией инициализации резидента, процедура осуществляет проверку на повторную загрузку резидента, используя внешнюю переменную, с уникальным значением, инсталляцию резидента в память, передачу данных резиденту с использованием вектора свободного прерывания, передачу управления резиденту посредством его вызова как подпрограммы, если нажата клавиша «Caps Lock» или Shift, выгрузку резидента из оперативной памяти, вывод информационных сообщений.

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

Используемые внешние переменные: old_2Fh, mess1, mess2, mess3, toneMsg, dlitMsg, pausaMsg, tone, dlit, pausa, dop.

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

 

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

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

Входные данные: значения частоты звука, длительности звука, паузы.

Выходные данные: звуковой сигнал.

Процессы обработки: после входа в резидентную часть, осуществляется программирование звукового канала таймера. Посредством порта 43h выбирается канал 2, задается режим работы и тип операции передачи значения в канал. Устанавливается частота сигнала канала 2 таймера с помощью порта 42h. Включается динамик на время предусмотренное длительностью звука через порт 61h, затем он выключается на время паузы. Осуществление отсчета пауз и длительности звучания производится с помощью получения значения счетчика времени прерыванием 1Ah, вычисления момента времени окончания, и последующем сравнении текущего значения счетчика времени с заранее известным конечным значением. В подпрограмме осуществляется анализ кольцевого буфера клавиатуры на наличие пробела. Если был нажат пробел, значит подпрограмма завершается. Схема формирования звука для встроенного динамика представлена в приложении А.

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

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

Блок-схема алгоритма работы резидентной подпрограммы изображена на рисунке 3.5.

Рисунок 3.5. Блок-схема подпрограммы resident

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

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

Вход:

AH = 09h;

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

· Функция 01h int 21h – ввод символа с эхом

Вход:

AH = 01h.

Выход:

AL – ASCII-код введенного символа.

· Функция 02h int 21h – вывод символа на экран в позиции курсора

Вход:

AH = 02h.

Выход:

DL – ASCII-код выводимого символа.

· Функция 0Ch int 21h – сброс входного буфера

Вход:

AH = 0Сh.

· Функция 11h int 16h – анализ состояния кольцевого буфера

Вход:

AH = 11h.

Выход:

ZF = 1 (кольцевой буфер пуст);

ZF = 0 (кольцевой буфер не пуст);

AH = SCAN-код или расширенный ASCII-код;

AL = ASCII-код или префикс скан-кода.

· Функция 25h int 21h – установить вектор прерывания

Вход:

AH = 25h;

AL – номер прерывания;

DS:DX – адрес программы обработки прерывания.

· Функция 35h int 21h – получить вектор прерывания

Вход:

AH = 35h;

AL – номер прерывания.

Выход:

ES:BX – адрес программы обработки прерывания.

· Функция 31h int 21h – завершить работу программы и оставить в памяти

Вход:

AH = 31h;

AL – код выхода;

DX – размер программы в параграфах.

· Функция 49h int 21h – освободить выделенный блок памяти

Вход:

AH = 49h;

ES – сегментный адрес (параграф) освобождаемого блока памяти.

Выход:

· Функция 4Ch int 21h – завершить работу

Вход:

AH = 4Ch;

AL – код выхода.

· Функция 00h int 1Ah – считать значение счетчика времени

Вход:

AH = 00h.

Выход:

CX:DX – значение счетчика;

AL – байт переполнения счетчика.

Текст подпрограмм

Cм. приложение Б.

3.5 Тестирование

3.5.1 Цель испытаний

Выяснить поведение программы в различных ситуациях, созданных пользователем.

3.5.2 Тесты

Тест №1

Действия: первый запуск резидентной программы.

Реакция программы: выводится уведомление об установке резидента. См. рисунок 3.6.

Рисунок 3.6. Тест №1

Тест №2

Действия: повторный запуск резидентной программы.

Реакция программы: при двух подряд загрузках резидента выводится уведомление о попытке повторной загрузки и предложении инициализации. См. рисунок 3.7.

Рисунок 3.7. Тест №2

Тест №3

Действия:

1) запуск резидентной программы;

2) инициализация резидентной части.

Реакция программы: выводится предложение пользователю ввести данные, а именно частоту, длительность, паузу, и производится генерация звука. См. рисунок 3.8.

Рисунок 3.8. Тест №3

Тест №4

Действия: выгрузка резидента.

Реакция программы: при нажатии клавиши «пробел» выводится уведомление о выгрузке резидента. См. рисунок 3.9.

Рисунок 3.9. Тест №4





Дата публикования: 2014-12-08; Прочитано: 248 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.041 с)...