Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Архитектура компьютеров»Error! AutoText entry not defined. для направления 010400.62 «Прикладная математика» подготовки бакалавра Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Московский институт электроники и математики Национального исследовательского университета "Высшая школа экономики" Факультет прикладной математики и кибернетики Программа дисциплины Архитектура компьютеров для направления 010400.62 Прикладная математика и информатика подготовки бакалавра Автор программы: Лавренов С.М., к.т.н., доцент Одобрена на заседании кафедры Кибернетика Зав. кафедрой Афанасьев В.Н. «___»____________ 20 г Утверждена УС МИЭМ НИУ ВШЭ «___»_____________20 г. Ученый секретарь В.П.Симонов ________________________ [подпись] Москва, 2012 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы. 2 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Архитектура компьютеров»Error! AutoText entry not defined. для направления 010400.62 «Прикладная математика» подготовки бакалавра 1. Цели и задачи дисциплины. Дисциплина "Архитектура компьютеров" имеет целью обучить студентов основам компьютерной архитектуры и дать навыки программирования на языке Ассемблера. Задачи дисциплины — дать основы: принципов организации ЭВМ; системы команд ЭВМ; языка Ассемблера; 2. Требования к уровню освоения содержания дисциплины. В результате изучения дисциплины студенты должны: иметь представление о принципах организации вычислительных систем; знать: систему команд центрального процессора; иерархию памяти; принципы взаимодействия с внешними устройствами; уметь: программировать на языке Ассемблера; осуществлять вставки на языке Ассемблера в программы, написанные на языке Си; иметь навыки: разработки программ на языке Ассемблера; использования отладчиков. 3. Объем дисциплины и виды учебной работы (часы). Вид учебной работы Общая трудоемкость дисциплины Аудиторные занятия Лекции (Л) Практические занятия (ПЗ) Семинары (С) Лабораторные работы (ЛР) И (или) другие виды аудиторных занятий Самостоятельная работа Курсовой проект (работа) Расчетно-графические работы Реферат И (или) другие виды самостоятельной работы Вид итогового контроля (зачет, экзамен) Семестры 4 5 36 36 18 9 9 18 9 9 зачёт экзамен Всего часов 3 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Архитектура компьютеров»Error! AutoText entry not defined. для направления 010400.62 «Прикладная математика» подготовки бакалавра 4. Содержание дисциплины. 4.1. Разделы дисциплины и виды занятий № Раздел дисциплины п/п 1 Кодирование информации 2 Основы архитектуры семейства 80x86 3 Команды ЦП: пересылки, арифметические, перехода. 4 Стек, подпрограммы, программные прерывания 5 Средства языков Ассемблера 6 Модульное программирование 7 Работа с внешними устройствами Аудиторные занятия Лекции ПЗ ЛР 2 2 2 3 4 3 2 2 2 2 4 2 4.2. Содержание разделов дисциплины Р а з д е л 1. Кодирование информации Структура ячейки памяти: биты, байты, слова. Системы счисления: двоичная, 16-ричная. Целые числа: знаковые и беззнаковые. Диапазоны целых. Сложение и вычитание целых. Примеры программ на языке Си для изучения эффекта переполнения. Кодирование символов. Код ASCII. Расширения кода ASCII: кодировка IBM, альтернативная кодировка ГОСТа, UNICODE. Р а з д е л 2. Основы архитектуры семейства 80x86 Общие сведения о семействе процессоров 80x86. Общая шина. Память: ОЗУ и ПЗУ. Кэшпамять. Адресное пространство. Сегмент и смещение, параграф. Нормализованный адрес. Распределение памяти персональной ЭВМ: обычная память, видеобуфер, ROM BIOS, дополнительная (expanded) и расширенная (extended) память, область верхней памяти (UMA – upper memory area). Команды отладчика debug для просмотра ячеек памяти. Сегментные регистры. Структура центрального процессора: исполнительный блок и шинный интерфейс. Конвейеризация. Очередь команд. Регистры центрального процессора: HLрегистры, PI-регистры, счетчик команд, регистр флагов. Назначение битов регистра флагов. Работа с отладчиком debug: запуск отладчика, пример сеанса работы с отладчиком, команды отладчика, сгруппированные по функциональному признаку. Р а з д е л 3. Команды ЦП: пересылки, арифметические, перехода. Методы адресации: регистровый и непосредственный. Структура описания команд. Команды пересылки. Арифметические команды: сложение, вычитание. Длинные целые. Операнды различной длины. Арифметические команды: умножение, деление. Десятичная арифметика. Условные переходы. Команды безусловных переходов. Индексная адресация. Команды организации циклов. Косвенная адресация. Команды косвенного перехода. Кодирование команд: однооперандные команды, непосредственный операнд, двухоперандные команды. Префикс замены сегмента. Команды загрузки исполнительного адреса. 4 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Архитектура компьютеров»Error! AutoText entry not defined. для направления 010400.62 «Прикладная математика» подготовки бакалавра Р а з д е л 4. Стек, подпрограммы, программные прерывания. Стек. Команды работы со стеком. Использование стека для организации вложенных циклов. Стековый кадр. Подпрограммы. Передача параметров: через стек и через регистры. Возвращение результата через флаг CF. Команды изменения флага CF. Вложенные подпрограммы. Использование Turbo Debugger для отладки программ. Прерывания: их классификация. Команды запрета и разрешения внешних прерываний. Программные прерывания. Векторы прерываний. Команды прерываний. Пример программы обработки прерывания: определение размера доступной памяти. Однобайтная команда INT и ее применение при трассировке программ. Структура программного обеспечения IBM PC. Таблица векторов прерываний. Прерывания BIOS (примеры). Прерывания DOS (примеры). Трассировка подпрограмм и прерываний в отладчиках. Прерывание INTO. Операции с сегментными регистрами. Организация прерывания посредством дальнего косвенного вызова. Реализация прерываний в Си. Р а з д е л 5. Средства языков Ассемблера Язык Ассемблера. Определение данных. Пример программы на языке Ассемблера. Этапы создания программы: ассемблирование, компоновка, выполнение. Листинг. Сообщения TASM. Различия в диагностике ошибок TASM и MASM. Карта памяти. Подпрограммы. Макросы. Вложенные макросы. Условное ассемблирование. Локальные метки. Блоки повторений. Включаемые файлы. Использование кода завершения в командных файлах. Директивы определения идентификаторов. Командный файл для ассемблирования, компоновки и отладки программ, содержащихся в одном файле. Р а з д е л 6. Модульное программирование. Директивы связи. Сегментные директивы. Директива ASSUME. Параметры директивы SEGMENT. Сегментные группы. Взаимоотношение упрощенных и стандартных сегментных директив. Модели памяти. Исполняемые файлы в COM-формате. Отладка COM-программ. Встроенный ассемблерный код (inline). Стыковка модулей, написанных на языках Си и Ассемблера. Передача параметров в Си. Примеры программ для разных моделей памяти. Директивы, упрощающие стыковку модулей. Р а з д е л 7. Работа с внешними устройствами. (10 часов) Контроллеры. Порты. Команды работы с портами. Пример: получение звука. Режимы работы контроллеров: синхронный, асинхронный, по прерываниям. Пример работы в режиме опроса флага: программирование параллельного адаптера (принтер). Программируемый контроллер прерываний. Таймер. Клавиатура. Примеры резидентных программ. 5 Национальный исследовательский университет «Высшая школа экономики» Программа дисциплины «Архитектура компьютеров»Error! AutoText entry not defined. для направления 010400.62 «Прикладная математика» подготовки бакалавра 5. Лабораторный практикум. № № раздела Наименование лабораторных работ п/п дисциплины 1 3 Написание и отладка с использованием отладчика debug.exe программы вычисления рациональной функции с исходными данными различной длины. 2 3 Написание и отладка с использованием отладчика debug.exe программы изменения строки из трех цифр в соответствии с заданием, предусматривающим использование условных и безусловных переходов. 3 3 Написание и отладка с использованием отладчика Turbo Debugger программы обработки массивов байтов и слов 4 4,5,6 Написание программы на языке Ассемблера с использованием макросредств Turbo Assembler. Задание предусматривает битовые операции над массивом байтов и слов. 5 4,5,6 Написание главной программы на языке Си и подпрограммы на языке Ассемблера. 6. Учебно-методическое обеспечение дисциплины. 6.1. Рекомендуемая литература а) основная литература: 1. Ирвин К. Язык Ассемблера для процессоров Intel. — М.: Издательский дом "Вильямс", 2002. — 616 с. 2. Лавренов С.М. Решение задач на языке Ассемблера. — М.: Изд.МГИЭМ, 2000. — 96 с. 3. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. — М.: "ДИАЛОГМИФИ", 1994. — 288 с. 4. Юров В. Assembler. — СПб: "Питер", 2000 — 624 с. 5. Юров В. Assembler: специальный справочник. — СПб: "Питер", 2000 — 496 с. б) дополнительная литература: 1. Рудаков П.И., Финогенов К.Г. Программируем на языке Ассемблера IBM PC. — Обнинск: Изд-во "Принтер", 1999. — 495 с. 2. Таненбаум Э. Архитектура компьютера. — СПб.: Питер, 2003. — 704 с. 6.2. Средства обеспечения дисциплины. Программное обеспечение: Turbo Assembler, MASM, Visual C++. 7. Материально-техническое обеспечение дисциплины. Класс ПЭВМ на базе процессора Intel (не ниже Pentium MMX). 8. Методические рекомендации по организации изучения дисциплины. Тематика контрольных работ. 1. Перевод числа, представленного в десятичной системе счисления, в 16-ричную и двоичную системы. 2. Интерпретация содержимого байта как символа в коде ASCII, а также как знакового и как беззнакового чисел.