В результате освоения дисциплины у выпускника формируются следующие компетенции:
Код компетенции
Компетенция
ОК-7
Способность к самоорганизации и самообразованию
ОПК-2
Способность осваивать методики использования программных средств для решения практических задач
ОПК-5
Способность решать стандартные задачи профессиональной деятельности на основе информационной и библиографической культуры с применением информационно-коммуникационных технологий и с учетом основных требований информационной безопасности
ПК-1
Способность разрабатывать модели компонентов информационных систем, включая модели баз данных и модели и интерфейсов «человек – электронно-вычислительная машина»
ПК-2
Способность разрабатывать компоненты аппаратно-программных комплексов и баз данных, используя современные инструментальные средства и технологии программирования
Структура формирования компетенций
В результате освоения курса «Низкоуровневое программирование» студент должен
Знать:
З-1 принципы функционирования современной вычислительной системы;
З-2 структуру современных микропроцессоров и регистровую модель микропроцессоров семейства x86/x64 и совместимых с ними;
З-3 режимы работы и адресациимикропроцессоров семейства x86/x64 и совместимых с ними;
З-4 систему команд языка Ассемблера для микропроцессоров семейства x86/x64 и совместимых с ними в нотациях Intel и AT&T;
З-6 принципы взаимодействия программы на Ассемблере с операционной системой.
Уметь:
У-1 разрабатывать алгоритмы работы низкоуровневых программ;
У-2 разрабатывать и отлаживать программы на языке Ассемблера для микропроцессоров семейства x86/x64 и совместимых с ними;
У-3 организовывать взаимодействие программ на языке Ассемблера как с пользователем, так и с операционной системой.
Владеть:
В-1 навыками низкоуровневого программирования для операционных систем DOS/Windows и Linux;
В-2 методами отладки низкоуровневых программ;
В-3 принципами работы со стеком, построения многомодульных низкоуровневых программ.
Компетенции
Знания (знать)
Умения (уметь)
Навыки (владеть)
ОК-7
З-1, З-2, З-3,
З-4, З-5, З-6
У-1, У-2, У-3
В-1, В-2, В-3
ОПК-2
З-1, З-2, З-3,
З-4, З-5, З-6
У-1, У-2, У-3
В-1, В-2, В-3
ОПК-5
З-1, З-2, З-3,
З-4, З-5, З-6
У-1, У-2, У-3
В-1, В-2, В-3
ПК-1
З-1, З-2, З-3,
З-4, З-5, З-6
У-1, У-2, У-3
В-1, В-2, В-3
ПК-2
З-1, З-2, З-3,
З-4, З-5, З-6
У-1, У-2, У-3
В-1, В-2, В-3
Программа оценивания контролируемых компетенций
Формирование у студентов компетенций контролируется в течение всего времени освоения дисциплины в рамках:
- текущего контроля;
- рубежного контроля;
- промежуточного контроля.
№ п.п.
Наименование раздела учебной дисциплины
Неде-ли
Лек-ции, час.
Практ. зан./ семи-нары, час.
Лаб. рабо-ты, час.
Обязат. текущий контроль (форма*, неделя)
Аттестация раздела (форма*, неделя)
Макси-мальный балл за раздел **
Компетенции по разделам, проверяемые при текущем и рубежном контроле
Компетенции, проверяемые на зач. /экз.
4 семестр
Арифметические и логические операции. Обработка матриц.
1-8
ЛР3
ЛР6, ЛР8,
КР8
КИ8
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Обработка и ввод/вывод строк. Модульное программирование. Ассемблирование в Linux.
9-15
ЛР10,
ЛР12,
ЛР13
ЛР15
КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Зачет
З
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Итого за 4 семестр
Недели
Содержание / Темы занятий
Лек., час.
Пр./сем., час.
Лаб., час.
Компетенции по темам, проверяемые при текущем контроле
Виды тек.контроля по проверке компетенций
Компетенции по темам, проверяемые на зач. /экз.
6 семестр
1. Введение.
Архитектура вычислительной системы по фон Нейману. Принципы работы микропроцессоров. Регистровая модель микропроцессоров семейства х86/х64.
ОК-7, ОПК-5
2-4
2. Основы низкоуровневого программирования. Арифметические и логические операции.
Режимы работы и адресации памяти для микропроцессоров семейства x86. Этапы разработки программы на Ассемблере. Структура программы для компилятора TASM. Регистр флагов. Арифметические команды, обработка знаковых и беззнаковых чисел. Логические команды. Команды условных и безусловного переходов. Организация циклов. Команды сдвигов.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
КР8, ЛР3, КИ8
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
5-8
3. Работа со стеком. Обработка матриц. Процедуры и макросы в Ассемблере.
Организация стека в микропроцессорах семейства x86. Команды работы со стеком. Разновидности косвенной адресации. Использование косвенной адресации для чтения данных из стека. Базовая индексная со смещением адресация как инструмент для обработки матриц. Процедуры: команды вызова и возврата. Передача параметров процедуре и коррекция стека при возврате. Макросы.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
КР8, ЛР6, ЛР8, КИ8
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
9.
4. Обработка строк.
Команды обработки цепочек символов. Флаг DF. Сканирование строчек и поиск подстрок. Префиксы повторения.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР10, КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
10-11.
5. Работа с консолью и файлами.
Взаимодействие с операционной системой через программные прерывания. Консоль: посимвольный ввод/вывод, ввод/вывод строк. Операции при работе с файлами: создание/открытие/закрытие, чтение/запись, удаление, смещение указателя текущей позиции.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР12, КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
6. Многомодульные программы.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР13, КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Обобщенные директивы сегментации. Описание сегментов. Программы с несколькими сегментами кода и данных. Особенности сборки многомодульных программ.
13-14
7. Низкоуровневое программирование в ОС семейства Linux.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР15, КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Структура программы на Ассемблере под Linux. Синтаксис команд Ассемблера в нотации AT&T. Системные вызовы в Linux. Обращение к функциям LIBC.
8. Обработка прерываний. Резидентные программы.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
КИ15
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
Действия микропроцессора при обработке аппаратных и программных прерываний. Обработчики прерываний. Перепрограммирование обработчиков прерываний. Резидентные программы.
Недели
4 семестр
Лабораторные работы
Компетенции по темам, проверяемые при текущем контроле
Виды тек. контроля по проверке компетенций
Компетенции по темам, проверяемые на зач. /экз.
1-8
Раздел 1. Арифметические и логические операции. Обработка матриц.
1. Арифметические операции.
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР3
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
2. Логические операции
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР6
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
3. Обработка матриц
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
ЛР8
ОК-7, ОПК-2, ОПК-5, ПК-1, ПК-2
9-15
Раздел 2. Обработка и ввод/вывод строк. Модульное программирование. Ассемблирование в Linux.