Раздел 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. Формы и методика текущего, промежуточного и итогового контроля
Контроль усвоения студентами содержания дисциплины проводится на:
- лабораторных работах в ходе испытания разработанных студентами программ и проверки уровня самостоятельности разработки;
- в ходе защиты курсового проекта;
- в ходе промежуточного автоматизированного тестирования знаний;
- на экзамене по курсу.


