Раздел 1 УМК

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

УТВЕРЖДАЮ:

Декан факультета информационных систем и технологий

_______________________ В.

«__»______________2007г.

РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА

дисциплины Машинно-ориентированное программирование

по специальности Информатика и вычислительная техника

факультета информационных систем и технологий, кафедра ВТ

Форма обучения очная Блок дисциплин ОПД

Всего учебных занятий,

в том числе:

аудиторных, из них:

лекций

лабораторных

практических (семинарских)

самостоятельных

172

86

52

34

-

86

Отчетность

Курсовая проект

Зачет

Экзамен

6 семестр 5семестр 6_семестр

Ульяновск - 2007

Рабочая программа составлена на основании ГОС ВПО и учебного плана УлГТУ специальности Информатика и вычислительная техника

на кафедре Вычислительная техника

факультета информационных систем и технологий.

Составитель рабочей программы

профессор кафедры ВТ, д. т.н.

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

Протокол заседания № ___от «__»___________2007 г.

Заведующий кафедрой

«___»________2007г.

Согласовано с научно-методической комиссией факультета ФИСТ

(к которому относится кафедра-составитель)

Председатель научно-методической комиссии

«___»________2007г. _________________ ___________________

(подпись) ()

Учебная дисциплина «Машинно-ориентированное программирование» входит в региональный раздел цикла общепрофессиональных дисциплин учебного плана, поэтому требования к содержанию дисциплины определяются кафедрой на основе следующих общих требований к выпускнику:

==== начало выборки требований стандарта ===

Инженеру о специальности "Вычислительные машины, комплексы, системы и сети"

должен знать:

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

должен владеть:

-  методами проектирования аппаратных и программных средств;

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

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

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

-  методами и средствами тестирования, отладки и испытаний аппаратно-программных комплексов;

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

=== конце выборки требований ===

1. Цели и задачи учебной дисциплины, ее место в учебном процессе

1.1. Цели и задачи изучения дисциплины

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

Задачами теоретического цикла лекций являются: а) знакомство с организацией ассемблера и ассемблер-программ, методами машинно-ориентированного программирования; б) изучение вопросов оптимизации программ на основе знания особенностей структурно-функциональной организации вычислительной машины.

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

В курсовом проектировании решаются задачи моделирования вычислительной машины на базе использования языков ассемблера и Си.

1.2. Краткая характеристика дисциплины, ее место в учебном процессе

Данный курс рассматривает машинно-ориентированное программирование применительно к четырем процессам: а) программирование на ассемблере; б) оптимизация Си-программ, базирующееся на понимание свойств трансляторов, а также на использовании смешанного программирования «Си-Ассемблер»; в) создание высокоэффективных программ на Си и ассемблере с учетом знания работы аппаратной части ЭВМ; г) моделирование средств вычислительной техники. Эта дисциплина интегрирует широкий спектр знаний по программированию, операционным системам, информатики, теории автоматов с целью обеспечить эффективность разрабатываемых программ, а также успешный выход выпускников на рынок труда в секторе проектирования систем контроля и управления.

1.3. Связь с предшествующими дисциплинами

Программа учебного курса опирается на ранее полученные студентами знания по следующим дисциплинам: «Программирование на языках высокого уровня», «Дискретная математика», «Информатика», «Моделирование», «Схемотехника», «Операционные системы», «Теория автоматов».

НЕ нашли? Не то? Что вы ищете?

1.4. Связь с последующими дисциплинами

Знания данной дисциплины используется в дисциплинах «Организация ЭВМ и систем», «Микропроцессорные системы», «Системное программное обеспечение», «Методы и средства защиты информации».

2. Требования к уровню освоения дисциплины

В результате изучения дисциплины студенты должны:

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

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

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

3. Распределение учебных занятий по семестрам
и тематический план дисциплины

3.1. Распределение видов и часов занятий по семестрам

Вид занятий

Количество часов в семестр

Всего

1

2

3

4

5

6

7

8

9

Лекции

Лабораторные работы

Практические занятия

Самостоятельная работа, в т. ч.

- курсовой проект

- контрольная работа

- экзамен (6 сем.)

- зачет (5 сем.)

Итого

18

18

-

30

-

-

-

2

34

16

-

56

30

-

15

-

52

34

-

86

30

-

15

2

172

3.2. Тематический план изучения дисциплины

Тема

Аудит. занятия

Са-мост.

Всего

Лек

Лаб

Всего

1

Основы технологии программирования на ассемблере

10

2

12

14

26

2

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

10

8

18

12

30

3

Организация ввода-вывода и прерываний

10

8

18

16

34

4

Представление и обработка данных с различной структурой в ассемблере

16

8

24

24

48

5

Моделирование средств вычислительной техники

6

8

14

20

34

Итого часов

52

34

86

86

172

4. Содержание дисциплины

4.1. Теоретический курс

Раздел, тема учебной дисциплины, содержание темы

Номер

лекции

Колич. часов

лекции

СРС

Раздел 1. Основы технологии программирования на ассемблере

1-5

10

6

Тема 1.1. Введение в машинно-ориентированное программирование

Базовые определения. Машинно-ориентированные языки и их применение. Учет специфики компьютерной архитектуры при программировании н языках высокого уровня.

1

2

0

Тема 1.2. Базовые процессы и инструменты создания ПО средствами ассемблера

Общая схема техпроцесса. Содержание процессов макрообработки, ассемблирования, компоновки.

2

2

2

Тема 1.3. Структура ассемблер-программ

Исходные модули, сегменты, подпрограммы. Поддержка раздельной трансляции. Смешанное программирование «Си+Ассемблер»

3

2

2

Тема 1.4. Основные операторы и директивы ассемблера

Синтаксис оператора. Константы. Декларации данных. Константные выражения. Адресные выражения. Элементы макропрограммирования

4-5

4

2

Раздел 2. Реализация управления обработкой данных на ассемблере

6-10

10

8

Тема 2.1. . Программирование ветвлений

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

6

2

2

Тема 2.2. Реализация оператора switch

Реализация через последовательность команд «Сравнение – Ветвление». Реализация через таблицу адресов переходов. Реализация через две таблица: адресов переходов и значений.

7

2

2

Тема 2.3. Программирование циклов

Циклы с предусловием. Циклы с постусловием. Циклы с параметром. Вложенные циклы.

8

2

2

Тема 2.4. Организация подпрограмм

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

9-10

4

2

Раздел 3. Организация ввода-вывода и прерываний

11-15

10

8

Тема 3.1. Ввод целочисленных данных и преобразование из внешнего представления во внутреннее

Ввод средствами ОС. Преобразование целочисленных данных из внешнего представления во внутреннее для различных систем счисления.

11

2

2

Тема 3.2. Вывод целочисленных данных и преобразование из внутреннего представления во внешнее

Вывод средствами ОС. Преобразование целочисленных данных из внутреннего представления во внешнее для различных систем счисления.

12

2

2

Тема 3.3. Алгоритмы преобразования вещественных чисел при вводе-выводе

Преобразование дробной части вещественных чисел из внешнего представления во внутреннее. Преобразование дробной части вещественных чисел из внутреннего представления во внешнее.

13

2

2

Тема 3.4 Ввод-вывод без использования функций ОС

Команды ввода-вывода. Режим опроса флага готовности. Режим прерываний. Режим прямого доступа к памяти. Организация прерываний.

14-15

4

2

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

16-23

16

6

Тема 4.1. Обработка массивов и адресная арифметика

Представление массивов в статической памяти, динамической памяти и в стеке. Обработка одномерных массивов. Обработка многомерных массивов. Массивы Айлиффа.

Адресная арифметика.

16-17

4

2

Тема 4.2. Обработка записей и списков

Представление записей. Обращение к полям. Организация и обработка списков

18

2

2

Тема 4.3. Обработка текстов.

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

19

2

2

Тема 4.4.Логичиская обработка данных

Обработка бит-векторов. Реализация булевых функций. Автоматное программирование и интерпретация цифровых автоматов.

20-21

4

2

Тема 4.5. Арифметическая обработка данных

Обработка данных повышенной точности. Обработка двоично-десятичных данных. Обработка вещественных чисел.

22-23

4

4

Раздел 5. Моделирование средств вычислительной техники

24-26

6

4

Тема 5.1 Моделирование цифровых устройств на уровне межрегистровых передач

Представление объектов цифровых устройств в переменных моделирующей программы. Моделирование микроопераций. Моделирование микропрограмм.

24

2

2

Тема 5.2. Моделирование ЭВМ на уровне межрегистровых передач

Представление программно-доступных компонентов. Моделирование командного цикла. Моделирование методов адресации. Моделирование операций. в

25-26

4

2

4.2. Практические (семинарские) занятия

Учебным планом не предусмотрены.

4.3. Лабораторные занятия

Номер лаб. работы

Наименование лабораторной
работы

Номер

раздела,
тема дисциплины

Формы
контроля выполнения работы

Объем в часах

Ауди-торных

СРС

1

Технология программирования на ассемблере и логическая обработка данных.

Разделы 1, 2,3, 4.

отчет

через 2 недели

10

8

2

Программирование обработки текстов.

Темы 2.1-2.4,3.1-3.3, 4.3

8

6

3

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

Темы 2.1-2.4,3.1-3.3, 4.4

отчет

через 2 недели

8

6

4

Моделирование цифрового устройства

Темы 2.1-2.4,3.1-3.3, 5.1.

отчет

через 2 недели

8

6

4.4. Курсовой проект

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

4.4.1. Общий порядок решения задач курсового проекта:

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

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

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

4)  разработка модели программного цикла и механизмов дешифрации команд;

5)  разработка модели методов адресации;

6)  разработка моделей операций;

7)  разработка контрольных примеров и тестирование;

8)  подготовка отчета и сдача.

4.4.2. Содержание пояснительной записки:

    Титульный лист с наименованием темы; Содержание; Введение - 1-2 стр. Анализ функциональной организации ПЭВМ и команд, заданных для реализации -
    2-5 стр. Разработка схемы внешнего устройства и структур данных для его моделирования
    2-4 стр. Разработка и описание алгоритмов реализации команд и внешних устройств - 3-5 стр. Разработка и описание программы моделирования - 6-8 стр. Разработка и описание контрольных примеров - 2-4 стр. Список литературы - 1 стр. Приложения

4.5. Самостоятельная работа студентов

4.5.1. Внеаудиторная СРС по данному курсу включает:

- проработку учебного материала (по конспектам, учебной и научной литературе);

- выполнение индивидуальных заданий по лабораторным работам;

- самотестирование по контрольным вопросам (тестам);

- выполнение курсового проекта.

4.5.2. Программа самостоятельной работы студентов

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

5. Учебно-методическое обеспечение дисциплины

5.1. Перечень рекомендуемой литературы

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

1. Assembler: учеб. пособие для вузов. - 2-e изд. - СПб.: Питер, 20Учебник для вузов)с.

2. Пирогов : учеб. курс. - 2-е изд. - СПб.: BHV-Санкт-Петербург, 20

3. Магда . Разработка и оптимизация Windows-приложений. - СПб.: BHV, 20с.

4. Ассемблер на примерах. Базовый курс: перевод. - СПб.: Наука и техника, 20Серия "Просто о сложном")с.

5. Крупник . - СПб.: Питер, 20Самоучитель)с.

6. Ассемблер. Язык и программирование для IBM PC: - Киев: ВЕК+, 20с Дополнительная литература:

1. Язык ассемблера для процессоров Intel, 4-е издание.: Пер. с англ. – М.: «Вильямс», 2005. – 912 с.

2. Негода справочник по системе команд IA-32.

5.2. Методические рекомендации (материалы) преподавателю

Учебный процесс по курсу «Машинно-ориентированное програмирование» проводится чтением лекций в учебной аудитории, оборудованной компьютерным проектором с демонстрацией необходимых графических материалов.

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

5.3. Методические рекомендации студентам

При изучении курса студентам рекомендуется проводить:

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

- выполнение упражнений, задаваемых по ходу лекций;

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

- самотестирование по контрольным вопросам (тестам).

6. Формы и методика текущего, промежуточного и итогового контроля

Контроль усвоения студентами содержания дисциплины проводится на:

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

- в ходе защиты курсового проекта;

- в ходе промежуточного автоматизированного тестирования знаний;

- на экзамене по курсу.