Некоммерческое акционерное общество

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра компьютерных технологий

 

 

АССЕМБЛЕР

Методические указания к курсовой работе для студентов

всех форм обучения специальности 5В070400 – Вычислительная техника и программное обеспечение

 

 

 

Алматы 2010 

СОСТАВИТЕЛИ: Мусатаева Г.Т., Конуспаева А.Т., Байжанова Д.О. Ассемблер. Методические указания к курсовой работе для студентов всех форм обучения специальности 5В070400 – Вычислительная техника и программное обеспечение. - Алматы: АУЭС, 2011. - 20 с.

 

Методические указания составлены в соответствии с требованиями квалификационной характеристики специалиста, фирменного стандарта «Работы учебные. Общие требования к построению, изложению, оформлению», Государственного стандарта, СТ РК 1.5-2000 «Общие требования к построению, изложению, оформлению документов», а также программы курса. Они составлены с учетом активизации процесса изучения основ курса, закрепления лекционного курса и практических занятий. Методические указания служат основой для выполнения курсовых работ по дисциплине «Ассемблер». Материал методических указаний охватывает основные разделы курса «Ассемблер».

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

Библиография – 14 названий.

 

Рецензент: канд. физ.-мат. наук, доцент Б. М. Шайхин.

 

Печатается по плану издания некоммерческого акционерного общества «Алматинский университет энергетики и связи» на 2011 г.

  

 

© НАО «Алматинский университет энергетики и связи», 2011 г.

 

Введение

 

Цель курсовой работы: научится применять на практике теоретические знания, полученные на лекциях. В результате должна быть получена работоспособная программа с сопровождающей документацией, оформленной в соответствии с ЕСПД (Единой системой программной документации), ГОСТ 2.105-95 (Межгосударственный стандарт ЕСКД – Общие требования к текстовым документам) [1] и фирменного стандарта «Работы учебные. Общие требования к построению, изложению, оформлению». Алматинский университет энергетики и связи». – Алматы: АИЭС, 2009 [2].

В результате освоения материала курса студент должен:

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

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

Темы курсовых работ должны охватывать применение следующих операций:

-       ввод с клавиатуры (различные режимы);

-       вывод на экран (различные режимы);

-       работа с директориями;

-       работа с указателями положения записи/чтения на диске;

-       ввод/вывод в/из файл(а);

-       работа программы в диалоговом режиме;

-       разработка несложных меню и работа с меню.

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

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

Тематика курсовых работ может варьироваться по сложности в широких пределах, в зависимости от возможностей студента.


1 Оформление курсовой работы

 

1.1   Структура курсовой работы

 

Курсовая работа оформляется по схеме [2]:

-       титульного листа;

-       задания на курсовую работу с датой выдачи и подписями студента и преподавателя;

-       аннотации (не обязательно);

-       содержание;

-       введения;

-       основной части пояснительной записки, состоящей из разделов по согласованию с преподавателем;

-       заключения;

-       приложений, где приведен исходной текст программы (в записке и на диске) и при необходимости блок-схемы алгоритмов;

-       перечень принятых сокращений;

-       перечень принятых терминов;

-       список литературы;

-       приложения.

Курсовая работа принимается при работающей программе.

Системная документация регламентируется ГОСТом «Единая система программной документации» (ЕСПД) [1] и включает в себя следующие документы:

1) Описание структуры программы.

2) Описание блок-схемы алгоритма.

3) Описание программы.

4) Описание применения.

5) Руководство оператора (при необходимости).

6) Руководство пользователя.

7) Руководство программиста (при необходимости).

8) Описания контрольного примера (при необходимости).

В каждом конкретном случае в пояснительную записку может входить неполный перечень документов, определяемых ЕСПД.

 

2 Выполнение основной части работы

 

2.1 Описание структуры программы

 

Структура программы должна полностью описывать взаимодействие различных частей программы, передачу данных между блоками. Название блока в структуре должно соответствовать группе вершин в блок-схеме алгоритма.

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

 

2.2 Описание блок-схемы алгоритма

 

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

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

Ссылки на вершины делают либо буквами (А, B, C....), при этом ссылка дается на букву, куда идет связь, либо указанием номера вершины, куда идет связь и номера вершины, откуда пришла связь. Ссылки даются в кружках диметром 0,5а.  Размер основного блока вершины блок-схемы алгоритма а:б, как 1:1,5 (допускается 1:2), а = n*(10 или 15 мм.), где n коэффициент кратности. Например, вершина может иметь размер 200 на 300 мм при  n = 10 и модуле 15 мм.

 

2.3 Описание текста программы

 

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

Следует иметь в виду, что описать подробно - не значит многословно! Главное в описании текста программы - четко описать действия и результаты, назначение флагов, условия ветвления, назначение буферов и т.д.

При описании текста программы необходимо приводить фрагменты описываемой программы.

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

Программа с подробным описанием в виде комментариев называется самодокументирующейся.

Комментарии можно подразделить на следующие элементы.

2.3.1 Заголовок - названия программы и краткого описания того, что делает программа

Здесь же можно дать некоторые сведения о разработчике программы (телефоны, названия группы, фамилии). Например,

TITLE DISK.ASM

;ПРОГРАММА ВЫБОРА ДИСКОВ (ФАЙЛ DISK.ASM)

;Программа определяет число установленных в системе дисков, ;обрабатывает критические ошибки, формирует простое меню и ;устанавливает выбранные диски.

2.3.2 Комментарии блоков

Названия блоков дублируют названия соответствующих блоков на блок-схеме алгоритма. Блоки объединяют несколько операторов.

Hапример:

         ;опрос клавиатуры

         ................

         ;формирование рамки меню

2.3.3 Комментарий в строке

Как правило, уточняют, либо напоминают значения каких-либо действий в программе, назначение флага, проверки и т.д. Hе надо злоупотреблять комментарием и комментировать без необходимости каждую строку!

Пример правильного строчного комментария:

mov  bx,fio[1] ;в fio[1] находится число фактически введенных символов

cmp  ah,77         ;стрелка влево?

Таким образом, комментарии должны помогать ориентироваться в структуре программы. Хороший комментарий помогает не только при чтении программы, но и при отладке программы!


3 Технология написания пограммы

 

3.1 Основные этапы разработки программы

 

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

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

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

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

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

       упростить их разработку и реализацию;

       облегчить чтение программ;

       упростить их настройку и модификацию;

       облегчить работу с данными, имеющими сложную структуру;

       избежать чрезмерной детализации алгоритмов;

       обеспечить более выгодное размещения программ в памяти ЭВМ.

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

       методы проектирования "сверху-вниз" (нисходящее проектирование);

       "снизу-вверх" (восходящее проектирование);

        "изнутри к границам" (метод расширенного ядра).

Разбиение на модули осуществляется эвристическим путем. В дальнейшем мы будем использовать метод программирования “сверху-вниз”.

3.1.1 Постановка задачи

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

-       для какой цели разрабатывается программа;

-       какие данные обрабатываются и их количество, форматы, где хранятся, как вводятся и выводятся, срок хранения данных и т.д.;

-       какие отчетные документы должна готовить программа и их форма;

-       каков интерфейс программы с пользователем (виды экрана, и т.д.);

-       какие задачи связаны, а какие самостоятельные;

-       имеются ли критические ко времени обработки участки программы;

-       работает ли программа в сети, могут ли к ней обращаться несколько пользователей одновременно;

-       другие вопросы, связанные с эксплуатацией программы.

Процесс постановки задачи весьма ответственная часть работы и от успешного и корректного его выполнения зависит успешное завершение задания, особенно на этапе отладки программы. (Известно, что на отладку программ уходит до 70% времени). Применительно к курсовой работе постановка задачи сводится к написанию расширенного описания задачи, содержащего:

-       что необходимо получить в результате работы программы (документы, файлы, экран и т.д.);

-       способ организации меню (в видеопамяти, с помощью функций 21h прерывания, "падающее", многоуровневое и т.д.);

-       обработка ошибок от неправильных действий оператора или сбоев системы;

-       окончание работы.

3.1.2 Составление структуры программы

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

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

3.1.3 Разработка блок-схем алгоритмов

Блок-схемы алгоритмов разрабатываются параллельно с написанием программы. Можно составлять блок-схему алгоритма для небольшого участка, если его кодировка вызывает затруднения. На этом этапе уточняются названия блоков программы для занесения в программу в виде комментария.

3.1.4 Hаписание текста программы

При методе программирования "сверху вниз" сначала пишутся псевдооператоры сегментов, операторы загрузки адресов сегментов, блочные комментарии программы. Hапример, для программ на Turbo Assembler'е:

 

TITLE aos.asm

Comment# Программная оболочка для создания многооконного меню. Программа позволяет задать конфигурацию меню, уровень вложений ограничивается числом хранимых образов экрана и не менее 3-х. Встроенные функции: просмотр директориев и переход в поддиректории, выбор в меню файла (для просмотра или других целей), управление перемещением курсора по меню, директориям (или тексту), просмотр текстов в буферах, расположенных за пределами программы. Разработчик Иванов В.В., гр. БВТ-XX-YY #

 .model small

 .code

 .stack 200h

;__________________________________________________________

Start: Push cs

                  Pop   ds

         <Здесь будет тело программы>

         .........

exit:   mov ah,4ch ;выход из программы

         int 21h

 

End Start

 

Для программ, написанных на MASM:

;ОПРЕДЕЛЕHИЕ ЧИСЛА УСТАHОВЛЕHHЫХ ДИСКОВ ;ВОЗВРАЩАЕМЫХ СИСТЕМОЙ, ОПРЕДЕЛЕHИЕ ЧИСЛА

;ГИБКИХ ДИСКОВ,УПРАВЛЕHИЕ КУРСОРОМ И ВЫБОР ДИСКА

;(файл DISKI.ASM)

CSEG        SEGMENT

ASSUME CS:CSEG,DS:CSEG

begin:        push  cs

         pop   ds

 

jmp   v1

 

fr1     db     'ОШИБКА',10,13,'$'

 

v1:

         <Здесь будет тело программы>

         .........

exit:   mov ah,4ch ;выход из программы

         int 21h

CSEG        ends

         end begin

 

В приведенном примере данные располагаются в кодовом сегменте, а первым в кодовом сегменте должен быть псевдооператор ASSUME и операторы загрузки адресов сегментов (в этом примере push cs,pop ds). С этих операторов должно начинаться выполнение программы, на что указывает метка begin:, ссылка на которую поставлена в директиве end begin. Для того, чтобы обойти данные поставлен оператор jmp v1. Hа начальном этапе других данных пока не определено, кроме сообщений об ошибках.

Последним оператором на метке exit: стоит окончание программы, (функция 4ch прерывания 21h).

На следующем этапе по методу программирования "сверху вниз" определяется структура программы, и заполняются названия элементов программы. Для конкретности рассмотрим пример для следующего задания: "Разработать программу для переключения текущих дисков".

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

На основании самых общих соображений запишем структуру программы в виде последовательности операций (записаны в виде комментариев).

 

;ОПРЕДЕЛЕHИЕ ЧИСЛА УСТАHОВЛЕHHЫХ ДИСКОВ ;ВОЗВРАЩАЕМЫХ СИСТЕМОЙ, ОПРЕДЕЛЕHИЕ ЧИСЛА

;ГИБКИХ ДИСКОВ,УПРАВЛЕHИЕ КУРСОРОМ И ВЫБОР ;ДИСКА

;(файл DISKI.ASM)

CSEG        SEGMENT

ASSUME CS:CSEG,DS:CSEG

begin:        push  cs

         pop   ds

jmp   v1

;----------------

ch_d db     0;здесь поместим число дисков, возвр. системой

diski  db     23 dup(0),'$'; буфер для помещения списка дисков

fr1     db     'ОШИБКА',10,13,'$'

;----------------

v1:    ;определить какой диск является текущим

         ;сколько гибких дисков установлено?

         ;сформировать меню

         ;вывести меню

;вызвать процедуру управления курсором и выбором текущего ;диска

         call   UPRCUR

 

exit:   ;выйти из программы

         mov ah,4ch

         int 21h

 

<Здесь будет помещены процедуры. Данный участок оформлен в виде процедуры только для примера, чтобы показать, как оформлять процедуру. Но это не нарушает логики работы программы!>

UPRCUR   proc  ;процедура опрашивает клавиатуру, анализирует

                  ;нажатую клавишу и перемещает курсор

                  ;выбирает по меню диск и делает его текущим

                  ;(по <Enter>,либо выходит из процедуры без

                  ;всяких действий по <Esc>

         ret

UPRCUR   endp

CSEG        ends

         end begin

 

Теперь наша программа готова к кодированию: надо написать макрокоманды (если хотите), процедуры и текст программы.

При описании процедуры необходимо в виде комментария описать, что делает процедура, какие переменные необходимо задать перед вызовом процедуры и т.д. Заметим, что имена процедур и макрокоманд по ЕСПД пишут заглавными буквами.

Рассмотрим пример составления программы на ассемблере (кодирование), вставляя рассуждения о том, как написать фрагмент программы между выделенными двойным подчеркиванием участками. Естественно, что из готовой программы эти участки необходимо удалить (строки начинаются не с точки с запятой<;>.

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

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


4 Пробная эксплуатация

 

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


5 Оформление техдокументации

 

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

 

5.1 Инструкция пользователю

 

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

 

5.2 Инструкция системному программисту

 

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

 

5.3 Инструкция оператору

 

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

 

5.4 Описание контрольного примера

 

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


Перечень тем курсовых работ

 

1.    Разработка меню с трехуровневым вложением.

2.    Контроль целостности файлов путем инсталляции контрольной функции в .ехе файла.

3.    Разработка обработчиков прерываний.

4.    Разработка резидентных прграмм.

5.    Программа парольной защиты и защиты от реассемблирования  .exe и .com файлов.

6.    Разработка графических приложений под Windows.

7.    Разработка консольных приложений под  Windows.

8.    Исследование системных механизмов.

9.    Моделирование системных механизмов.

10. Трансляторы, грамматики, компиляторы.

11. Механизм управления потоками. Создание, запуск и завершение.

12.  Управление процессами.

13.  Перечисление процессов, выполняемых в системе.

14.  Совместное использование объектов ядра несколькими процессами.

15.  Управление заданиями.

16.  Потоки выполнения (приостоновка, возобновление, приоритеты).

17.  Использование классов приоритетов процессов и относительных приоритетов потоков.

18.  Синхронизация потоков в пользовательском режиме.

19.  Использование критических секций.

20.  Синхронизация потоков стандартными механизмами ядра.

21.  Демонстрационная программа применения событий.

22.  Программа применения мьютексов и семафоров.

23.  Реализация критической секции.

24.  Программа тестирования классов, функций.

25.  Применение таймерных функций.

26.  Исследование виртуальной памяти.

27.  Вывод системной информации. Структура SYSTEM_INFO.

28.  Вывод системной информации. Структура VM_QUERY.

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

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

31.  Применение механизма виртуальной памяти для управления массивами структур.

32.  Управление распределением, освобождение физической памяти.

33. Проецируемые в память файлы.

34. Динамически распределяемая память (Куча).

35. Динамически загружаемые библиотеки (DLL).

36. Внедрение DLL и перехват API-вызовов.

37. Внедрение DLL с помощью ловушек.

38. Внедрение DLL с помощью удаленных потоков.

39. Структурная обработка исключений.

40. Обработчики завершения.

41. Необработанные исключения и исключения С++.

42. Демонстрация применения оконных сообщений.

43. Модель аппаратного ввода и локальное состояние ввода.

44. Копирование файлов с использованием Win32.

45. Управление файлами и каталогами.

46. Управление реестром.

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

48. Последовательная обработка файлов с использованием отображения в память.

49. Сортировка отображенного в память файла.

50. Реализация языковых интерпретаторов.

51. Межпроцессорное взаимодействие.

52. Защита программ от исследования.

53. Драйверы VXD.

54. Программа для извлечения определений API из заголовочных файлов SDK.

55. Разведывательная библиотека DLL, внедряемая в исследуемый процесс для сбора информации.

56. Программа ввода данных в бланк задания.

57. Программа ввода данных в бланк рецензии.

58. Разработка программы help для работы с ARS.

59. Возможность создания командной строки и выполнения команды.

60. Основы теории конечных полей.

61. Объектно-ориентированный анализатор выражений.

62. Модификация программы управления курсором.

63. Принцип организации многооконного меню.

64. Работа с буферами.

65. Структура программы просмоторщика.

66. Параметры командной строки.

67. Синтаксически независимый разбор командной строки.

68. Работа с файлами: открытие файла, закрытие файла, чтение файла, запись в файл.

69. Работа с дисками.

70. Управление передачей управления с помощью симофоров.

71. Принцип преобразования кодировок с помощью таблиц.

72. Программа чтения в буфер, обработки буфера и запись буфера в файл.

73. Определение горячих клавиш.

74. Преобразование из одной системы счисления в другую.

75. Формат com. файла, адресация команд и данных в com. программе.

76. Программа инсталляции защитных процедур  в com. файлы путем приписки снизу и настройки адресов.

77. Инсталляция защитных процедур путем приписки снизу и настройкой сегментных регистров.

78. Пример программы инсталляции защитной процедуры в com. файл путем приписки защитной процедуры сверху и настройкой ds перед передачей управления.

79. Инсталляция защитных процедур в exe. файлах.

80. Работа ПК при прерываниях.

81. Процессы, проходящие в машине  при прерывании.

82. Разработка программы простой парольной защиты.

83. Разработка программы парольной защиты с хранимым паролем.

84. Разработка программы парольной защиты с не хранимым паролем.

85. Разработка скрытия точки входа в защищаемую программу.

86. Разработка схем криптографирования.

87. Разработка программы для перемешивания бит ключа произвольной длины.

88. Разработка программы  для быстродействующей схема перемешивания бит входной последовательности.

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

90. Перемешивание бит ключа произвольной длины.

91. Быстродействующая схема перемешивания бит входной последовательности.

92. Криптостойкий генератор случайных чисел на основе регистра сдвига.

93. Написание программы простой парольной защиты.

94. Разбор стандартов и шаблонов представления программ на различных фазах  и этапах их разработки. Стандарт ЖЦ и стандарт безопасности.

95. Инструменты, методики, нотации построения логических моделей данных и алгоритмов. Управление исключениями - основные синтаксические конструкции, механика исключений, системные исключения, исключения и классы.

96. Информация о типах времени исполнения (RTTI)- получение информации о типах и указателях на них.

97. СОМ ориентированные технологии. Стандарты СОМ. Интерфейсы и фабрики классов, распределенная модель СОМ. Автоматизация и сервер транзакций.

98. Разбор plug in (FAR) на примерах построения дополнений в существующий инструментарий.

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

100. Разработка, компиляция, вставка в систему и опробование plug-in.


Список литературы 

Нормативные документы

1.   ЕСПД (Единая система программной документации), ГОСТ 2.105-95.

2.   Фирменный стандарт. Работы учебные. Общие требования к построению, изложению, оформлению. Алматинский университет энергетики и связи. – Алматы: АИЭС, 2009.

3.   Межгосударственный стандарт ЕСКД – Общие требования к текстовым документам.

        Литература для выполения основной части работы

Основная литература

4. Зубков С.В. Assembler для DOS, Windows и UNIX. – М.: ДМК, 2009. - 841 c.

5. Юров В., Хорошенко С. Ассемблер. - СПб.: “Питер”, 2009. – 687 c.

6. Пирогов И.Ю. Assembler.Учебный курс. – М.: “Нолидж”, 2007. – 498 c.

7. Пузанков Д.В. Микропроцессорные системы. – СПб.: “Политехника”, 2008, – 935 с.

8. Абель П. Язык Ассемблера для IBM PC и программирования. – М.: “Высшая школа”, 2002.– 447 с.

Дополнителная литература

9. Брэдли Д. Программирование на языке Ассемблера для персональных ЭВМ IBM.-М.: “Радио и Связь”,2008. – 448 с.

10.           Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT.– М.: “Финансы и статистика”, 2006. – 544 с.

11.  Система программирования на макроассемблере MS-DOS (в 4-х частях). – Киев: НПО «Горсистемотехника», 2006. – 874 c.

12.  Майко Г.В. Assembler для IBM PC. - М.: “Бизнес-Информ”, “Сирин”, 2007. – 587 c.

13.  Hортон П. ПК фирмы IBM и OS MS-DOS. -М.: “Радио и связь”, 2005. – 478 c.

14.Скэнлон Л. ПЭВМ IBM PC и XT. Программирование на языке Ассемблера. - М.: “Pадио и Связь”, 2004. – 587 c.

 

Содержание 

Введение                                                                                                      3

1 Оформление курсовой работы                                                                 4

1.1 Структура курсовой работы                                                                  4

2 Выполнение основной части работы                                                       5

2.1 Описание структуры программы                                                          5

2.2 Описание блок-схемы алгоритма                                                          5

2.3 Описание текста программы                                                                 5

3 Технология написния программы                                                           7

3.1 Основные этапы разработки программы                                              7

4 Пробная эксплуатация                                                                              13

5 Оформление техдокументации                                                                 14

5.1 Инструкция пользователю                                                                     14

5.2 Инструкция системному программисту                                               14

5.3 Инструкция оператору                                                                          14

5.4 Описание контрольного примера                                                         14

Перечень тем курсовых работ                                                                    15

Список литературы                                                                                     18

 

 Сводный план 2011 г. поз. 269