Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 903

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
645.9 Кб
Скачать

ФГБОУ ВПО «Воронежский государственный технический университет»

Кафедра систем информационной безопасности

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к курсовому проектированию по дисциплине «Аппаратные средства

вычислительной техники» для студентов специальности 090301

«Компьютерная безопасность» очной формы обучения

Воронеж 2014

Составитель канд. техн. наук С.А. Ермаков

УДК 621.382.82

Методические указания к курсовому проектированию по дисциплине «Аппаратные средства вычислительной техники» для студентов специальности 090301 «Компьютерная безопасность» очной формы обучения / ФГБОУ ВПО «Воронежский государственный технический университет»; сост. С.А. Ермаков. Воронеж, 2014. 32 с.

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

Методические указания подготовлены в электронном виде в текстовом редакторе MSWord 2013 и содержатся в файле Ермаков_КП_АСВТ.pdf.

Табл. 1. Ил. 2. Библиогр.: 31 назв.

Рецензент д-р техн. наук, проф. А.Г. Остапенко

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А.Г. Остапенко

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУ ВПО «Воронежский государственный технический университет», 2014

ВВЕДЕНИЕ

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

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

Язык ассемблера – язык программирования низкого уровня, мнемонические коды которого (за редким исключением) соответствуют инструкциям процессора вычислительной системы. Трансляция программы в исполняемый машинный код производится ассемблером (от англ. assembler – сборщик) – программой – транслятором, которая и дала языку ассемблера его названия. Команды языка ассемблера один к одному соответствуют командам процессора. Фактически, они представляют собой более удобную для человека символьную форму записи – мнемокоды - команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько вариантов команд процессора.

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

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

программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. Также результатом ассемблирования может быть не исполнимый, а объектный модуль, содержащий разрозненные блоки машинного кода и данных программ, из которого (или из нескольких объектных модулей) в дальнейшем с помощью программы – компоновщика может быть скомпонован исполнимый файл [1].

2

1. ЦЕЛИ И ЗАДАЧИ КУРСОВОЙ РАБОТЫ

Целью курсовой работы разработка программных модулей на языке ассемблера компьютеров архитектуры x86, работающих в реальном или защищенном режиме. При этом пользователи должны познакомиться с архитектурными особенностями этих компьютеров, системой команд и режимами работы используемых в них микропроцессоров, организацией ввода-вывода и прерываний, управления аппаратными средствами компьютера, функциями базовой системы ввода-вывода BIOS и операционной системы Windows. Все эти знания естественным образом приобретаются при использовании языка ассемблера – языка приближенного к аппаратным средствам компьютера и его «натуральным» возможностям.

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

Практическая часть курсовой работы ориентирована на персональные ЭВМ, совместимые с архитектурой x86различных моделей. Решение задач на языке ассемблера рекомендуется проводить в интегрированной среде разработки, использующей пакет макроассемблера TASM корпорации Borland International версий не ниже 4.0 или транслятор MASM и компоновщик LINK корпорации

Microsoft.

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

Microsoft Word, отладчики типа Turbo Debugger фирмы

Borland или CodeView при работе в защищенном режиме.

3

2. ТРЕБОВАНИЯ К СОДЕРЖАНИЮ И ОБЪЁМУ КУРСОВОЙ РАБОТЫ

Основные требования к курсовой работе (КР) установлены стандартом предприятия СТП ВГТУ 62-2007. КР состоит из расчетно-пояснительной записки (РПЗ) объёмом от 30 до 50 страниц печатного текста с иллюстративным графическим материалом, размещенным по разделам работы, чертежей, схем.

Пояснительная записка содержит следующие разделы: а) титульный лист; б) задание на курсовую работу;

в) лист «Замечания руководителя»; г) содержание включает введение, наименование всех

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

д) введение; е) основную часть (исследовательскую) содержащую:

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

описание алгоритма;

листинг программы;

пример реализации программы.

ж) заключение; з) список литературы;

и) приложения (при необходимости).

Также к КР прилагается диск с готовой программой и электронным вариантом курсовой работы.

4

2.1. График выполнения курсовой работы

Срок выполнения

Содержание работы

 

 

 

 

 

1 – 2-я недели семестра

Выбор

задания

курсовой

 

работы.

Ознакомление

с

 

постановкой задачи

 

 

 

 

 

3 – 8-я недели семестра

Осмысление задания,

изучение

 

подхода к его выполнению,

 

разработка

 

структуры

 

программы

и

алгоритмов

 

функций.

Начало

кодирования

 

программы.

 

 

 

 

 

 

 

 

 

9 – 12-я недели семестра

Кодирование

 

и

отладка

 

программы (тестирование)

 

 

 

 

13 – 15-я недели семестра

Оформление

пояснительной

 

записки.

 

Окончательная

 

отладка

 

 

 

 

 

 

 

 

16 – 17-я недели семестра

Сдача пояснительной

записки.

 

Защита курсовой работы

 

 

 

 

 

 

 

 

2.2. Последовательность выполнения

Последовательность выполнения, рекомендации по выполнению разделов проекта:

1.Содержательный анализ задачи.

2.Формализация задачи.

2.1.Определить входные данные, их тип и структуру. Назначить имена.

2.2.Определить входные данные, их структуру.

3.Разработать алгоритм решения задачи и описать его.(Описание можно проводить либо в виде блок-схемы, либо на псевдоязыке).

4.Разработать программу.

5

4.1.Описать переменные (как основные, так и промежуточные).

4.2.Закодировать ввод исходных данных и вывод.

4.3.Закодировать полный алгоритм решения.

5.Провести отладку программы.

5.1.Составить контрольный пример.

5.2.Отладить программу.

6. Оформить отчет по курсовому проекту.

2.3. Критерии оценки курсовой работы

Оценка за курсовую работу складывается из оценки за предоставленный отчет, полноту выполненной работы, работоспособность программы, защиту (ответы на вопросы по теме проекта) и составляет от 2 до 5 («неудовлетворительно», «удовлетворительно», «хорошо», «отлично»).

6

3. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

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

Часто модули программы сами состоят из модулей более низкого уровня, то есть модульная программа имеет иерархическую структуру. Программист пишет основную (главную) программу и несколько подпрограмм. Для общности программу и подпрограммы называют модулями. Модуль имеет одну входную и одну выходную точку. Модуль, в котором записано обращение к другому модулю, называется вызывающим; второй модуль называется вызываемым. Основная программа – это модуль, который вызывается только операционной системой. Каждому модулю присваивается имя, и модульная структура программы изображается в виде иерархической схемы модулей (Рис. 1).

Рис. 1. Пример иерархии модулей

Среди множества модулей различают: головной модуль

– управляет запуском программного продукта (существует в

7

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

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

Структурный подход к программированию состоит из трёх частей:

1)нисходящее проектирование;

2)структурное программирование;

3)тестирование.

Разработку алгоритма удобно вести, двигаясь по дереву сверху вниз (Рис. 1.), как говорят нисходящим методом, т.е. от общего к частному. На первом этапе весь алгоритм представляется в виде единственного процедурного блока. Затем исходный алгоритм разбивается на части, выполняющие определенные функции. Процесс разработки алгоритма продолжается аналогично, пока весь алгоритм не будет разложен на достаточно простые блоки. Модульная структура программы позволяет сократить текст программы за счет выделения одинаковых участков обработки в отдельные модули. Разбивать программу на отдельные модули рекомендуется даже в тех случаях, когда эти модули используются однократно.

Представление программы в виде иерархии относительно обособленных фрагментов со строго определёнными интерфейсами делает её легко проверяемой и приводит к повышению качества и эффективности программы.

Модуль (подпрограмма, процедура или функция) – это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем.

8