Архитектура ЭВМ и язык Ассемблера
Программа курса “Архитектура ЭВМ и язык Ассемблера” (Лектор В.Г. Баула, 2-й семестр)
Архитектура ЭВМ
- Понятие об архитектуре ЭВМ. Уровни рассмотрения архитектуры. Типовая схема ЭВМ, принципы Фон-Неймана. Оперативная память: ячейка, адрес, бит, машинное слово. Характеристики и единицы измерения памяти. Команды и данные, их неразличимость. Двоичное представление данных.
- Центральный процессор ЭВМ: устройство управления и арифметико-логическое устройство. Регистры. Устройства ввода/вывода.
- Конкретизация машины Фон-Неймана в виде учебных ЭВМ. Архитектура и способы выполнения команд для учебных ЭВМ. Учебная трёхадресная ЭВМ, способы программирования, её формальное описание на Паскале.
- Адресность ЭВМ, схема выполнения команд в трёх, двух, одно и нуль адресной ЭВМ. Понятие такта работы. Схема выполнения команд в ЭВМ с адресуемыми регистрами.
- Разнообразие форматов команд и данных. Переменный формат команд и данных. Специфика применения ЭВМ в различных областях. Понятие о семействе ЭВМ и моделях семейства.
- Структура оперативной памяти: байт, слово (2 байта), двойное слово (4 байта). Структуры данных: символы, целые и вещественные числа, строки (массивы) символов и целых чисел, битовые данные. Представление целых чисел: прямой, обратный и дополнительный код. Представление вещественных чисел, нормализованные числа.
- Структура регистровой памяти, адресация регистров. Регистр флагов. Принципы адресации данных. Понятие о физическом и исполнительном адресе. Базирование и индексирование. Сегментные регистры. Основные форматы команд.
- Понятие прерывания, процедуры обработки прерываний. Роль Базовой Системы Ввода/вывода (BIOS) и операционной системы в выполнении программ.
- Понятие об архитектурных особенностях современных ЭВМ, которые позволяют им работать в мультипрограммном режиме: система прерываний, защита памяти, аппарат привилегированных команд, параллельная обработка данных, таймер.
- Связь центрального процессора с внешними (периферийными) устройствами. Архитектура ЭВМ с общей шиной. Порты ввода/вывода.
- Архитектура ЭВМ с каналами ввода/вывода (периферийными процессорами, процессорами ввода/вывода). Параллельная работа центрального процессора и каналов. Параллелизм в выполнении команд, расслоение памяти. Принцип локальности. Понятие о памяти типа кэш, схема её работы. Понятие конвейера. Понятие о матричных и векторных ЭВМ.
(*) Классификация архитектур ЭВМ по Флинну.
Язык Ассемблера
- Назначение, достоинства и недостатки языка Ассемблера. Основные понятия языка, вид программы на Ассемблере. Классификация предложений на языке Ассемблера: машинные команды, резервирование памяти, команды транслятору (директивы), макрокоманды, комментарии. Структура предложения на Ассемблере: поля метки, кода операции, операндов, комментария.
- Запись команд на Ассемблере, абсолютные и перемещаемые адресные выражения. Смещение, способы базирования и индексирования. Счётчик адреса.
- Имена в языке Ассемблер, тип имени, оператор TYPE. Директива EQU. Константные адресные выражения, счётчик адреса (счётчик размещения). Команды MOV и LEA, оператор PTR.
- Арифметические действия с целыми числами, программирование вычислений по формулам.
- Порядок выполнения команд в программе, условные и безусловные переходы, типы переходов. Программирование циклов.
- Описание массивов на Ассемблере. Работа с массивами, переменные с индексами. Строковые команды. Описание структур и упакованных записей на Ассемблере, задания их начальных значений, доступ к полям.
- Обработка битовых данных, логические команды. Вычисление булевских выражений. Работа с множествами.
- Общая структура программы на Ассемблере, понятие модуля. Описание программных сегментов. Доступ к данным в сегментах, начальная загрузка сегментных регистров. Директивы ASSUME и INCLUDE.
- Стек и стековые регистры, доступ к элементам стека. Описание и вызов процедуры, возврат из процедуры, способы передачи параметров. Стандартные соглашения о связях. Рекурсивные процедуры.
Макросредства языка
- Макроассемблер, понятие макрогенерации. Макроопределение, макрокоманда (макровызов), макрорасширение. Библиотека макроопределений.
Описание макроопределений. Сравнение применения подпрограмм и макроопределений. Условное ассемблирование, команды условного ассемблирования, задание логических условий. Блоки повторений. Макрооператоры <>, ! и &. Локальные объекты в макроопределениях, директива LOCAL.
Элементы системы программирования
- Понятие и состав системы программирования, понятие о многоязыковых системах программирования.
- Модульное программирование, понятие программного модуля. Библиотеки модулей. Исходные, объектные, загрузочные и абсолютные модули. Характеристики выполняемых модулей: перемещаемость, повторное и параллельное выполнение.
- Статические и динамические связи между модулями по управлению и по данным. Статическая связь по данным: входные и внешние имена. Доступ к внешним именам. Вызов внешней подпрограммы. Примеры многомодульных программ.
- Ассемблер и его основные функции, схема работы Ассемблера. Таблицы Ассемблера.
- Редактор внешних связей, его назначение и схема работы. Статический загрузчик, его назначение и схема работы. Понятие о динамическом связывании и динамической загрузке, динамический загрузчик и схема его работы.
Литература
- Пильщиков В.В. Программирование на языке Ассемблера IBM PC. – М.: Диалог-МИФИ, 1994.
- Скэлтон Л.Дж. Персональная ЭВМ IBM PC и XT. Программирование на языке Ассемблера. – М.: Радио и связь, 1991.
- Абель П. Язык Ассемблера для IBM PC и программирования. – М.: Высшая школа, 1992.
- Нортон П., Соухэ Д. Язык Ассемблера IBM PC. – М.: Компьютер, 1993.
- Ю-Чжень Лю, Гибсон Г. Микропроцессоры семейства 8086/8088. – М.: Радио и связь, 1987.
- Королёв Л.Н. Структура ЭВМ и их математическое обеспечение. – М.: Наука, 1978.
- Таненбаум Э. Архитектура компьютера. 5-е изд. – Питер, 2007.
- Бек Л. Введение в системное программирование. – М.: Мир, 1988.
- Королёв Л.Н. Микропроцессоры, микро- и мини-ЭВМ. – М.: Изд-во МГУ, 1989.
- Королёв Л.Н. Архитектура процессоров электронных вычислительных машин. – М.: Издательский отдел факультета ВМК МГУ им. М.В. Ломоносова, 2003.
- Баула В.Г. Введение в архитектуру ЭВМ и системы программирования. – М.: Изд. отдел ф-та ВМиК МГУ, 2007.
- Баула В.Г., Томилин А.Н., Волканов Д.Ю. Архитектура ЭВМ и операционные среды. – М.: Академия, 2011,2012.
Сайт поддержки курса: http://arch.cs.msu.su Литература к курсу: http://arch.cs.msu.su/semestr2