Архитектура ЭВМ и язык Ассемблера

Программа курса “Архитектура ЭВМ и язык Ассемблера” (Лектор В.Г. Баула, 2-й семестр)

Архитектура ЭВМ

  1. Понятие об архитектуре ЭВМ. Уровни рассмотрения архитектуры. Типовая схема ЭВМ, принципы Фон-Неймана. Оперативная память: ячейка, адрес, бит, машинное слово. Характеристики и единицы измерения памяти. Команды и данные, их неразличимость. Двоичное представление данных.
  2. Центральный процессор ЭВМ: устройство управления и арифметико-логическое устройство. Регистры. Устройства ввода/вывода.
  3. Конкретизация машины Фон-Неймана в виде учебных ЭВМ. Архитектура и способы выполнения команд для учебных ЭВМ. Учебная трёхадресная ЭВМ, способы программирования, её формальное описание на Паскале.
  4. Адресность ЭВМ, схема выполнения команд в трёх, двух, одно и нуль адресной ЭВМ. Понятие такта работы. Схема выполнения команд в ЭВМ с адресуемыми регистрами.
  5. Разнообразие форматов команд и данных. Переменный формат команд и данных. Специфика применения ЭВМ в различных областях. Понятие о семействе ЭВМ и моделях семейства.
  6. Структура оперативной памяти: байт, слово (2 байта), двойное слово (4 байта). Структуры данных: символы, целые и вещественные числа, строки (массивы) символов и целых чисел, битовые данные. Представление целых чисел: прямой, обратный и дополнительный код. Представление вещественных чисел, нормализованные числа.
  7. Структура регистровой памяти, адресация регистров. Регистр флагов. Принципы адресации данных. Понятие о физическом и исполнительном адресе. Базирование и индексирование. Сегментные регистры. Основные форматы команд.
  8. Понятие прерывания, процедуры обработки прерываний. Роль Базовой Системы Ввода/вывода (BIOS) и операционной системы в выполнении программ.
  9. Понятие об архитектурных особенностях современных ЭВМ, которые позволяют им работать в мультипрограммном режиме: система прерываний, защита памяти, аппарат привилегированных команд, параллельная обработка данных, таймер.
  10. Связь центрального процессора с внешними (периферийными) устройствами. Архитектура ЭВМ с общей шиной. Порты ввода/вывода.
  11. Архитектура ЭВМ с каналами ввода/вывода (периферийными процессорами, процессорами ввода/вывода). Параллельная работа центрального процессора и каналов. Параллелизм в выполнении команд, расслоение памяти. Принцип локальности. Понятие о памяти типа кэш, схема её работы. Понятие конвейера. Понятие о матричных и векторных ЭВМ.

(*) Классификация архитектур ЭВМ по Флинну.

Язык Ассемблера

  1. Назначение, достоинства и недостатки языка Ассемблера. Основные понятия языка, вид программы на Ассемблере. Классификация предложений на языке Ассемблера: машинные команды, резервирование памяти, команды транслятору (директивы), макрокоманды, комментарии. Структура предложения на Ассемблере: поля метки, кода операции, операндов, комментария.
  2. Запись команд на Ассемблере, абсолютные и перемещаемые адресные выражения. Смещение, способы базирования и индексирования. Счётчик адреса.
  3. Имена в языке Ассемблер, тип имени, оператор TYPE. Директива EQU. Константные адресные выражения, счётчик адреса (счётчик размещения). Команды MOV и LEA, оператор PTR.
  4. Арифметические действия с целыми числами, программирование вычислений по формулам.
  5. Порядок выполнения команд в программе, условные и безусловные переходы, типы переходов. Программирование циклов.
  6. Описание массивов на Ассемблере. Работа с массивами, переменные с индексами. Строковые команды. Описание структур и упакованных записей на Ассемблере, задания их начальных значений, доступ к полям.
  7. Обработка битовых данных, логические команды. Вычисление булевских выражений. Работа с множествами.
  8. Общая структура программы на Ассемблере, понятие модуля. Описание программных сегментов. Доступ к данным в сегментах, начальная загрузка сегментных регистров. Директивы ASSUME и INCLUDE.
  9. Стек и стековые регистры, доступ к элементам стека. Описание и вызов процедуры, возврат из процедуры, способы передачи параметров. Стандартные соглашения о связях. Рекурсивные процедуры.

Макросредства языка

  1. Макроассемблер, понятие макрогенерации. Макроопределение, макрокоманда (макровызов), макрорасширение. Библиотека макроопределений.
  2. Описание макроопределений. Сравнение применения подпрограмм и макроопределений. Условное ассемблирование, команды условного ассемблирования, задание логических условий. Блоки повторений. Макрооператоры <>, ! и &. Локальные объекты в макроопределениях, директива LOCAL.

Элементы системы программирования

  1. Понятие и состав системы программирования, понятие о многоязыковых системах программирования.
  2. Модульное программирование, понятие программного модуля. Библиотеки модулей. Исходные, объектные, загрузочные и абсолютные модули. Характеристики выполняемых модулей: перемещаемость, повторное и параллельное выполнение.
  3. Статические и динамические связи между модулями по управлению и по данным. Статическая связь по данным: входные и внешние имена. Доступ к внешним именам. Вызов внешней подпрограммы. Примеры многомодульных программ.
  4. Ассемблер и его основные функции, схема работы Ассемблера. Таблицы Ассемблера.
  5. Редактор внешних связей, его назначение и схема работы. Статический загрузчик, его назначение и схема работы. Понятие о динамическом связывании и динамической загрузке, динамический загрузчик и схема его работы.

Литература

  1. Пильщиков В.В. Программирование на языке Ассемблера IBM PC. – М.: Диалог-МИФИ, 1994.
  2. Скэлтон Л.Дж. Персональная ЭВМ IBM PC и XT. Программирование на языке Ассемблера. – М.: Радио и связь, 1991.
  3. Абель П. Язык Ассемблера для IBM PC и программирования. – М.: Высшая школа, 1992.
  4. Нортон П., Соухэ Д. Язык Ассемблера IBM PC. – М.: Компьютер, 1993.
  5. Ю-Чжень Лю, Гибсон Г. Микропроцессоры семейства 8086/8088. – М.: Радио и связь, 1987.
  6. Королёв Л.Н. Структура ЭВМ и их математическое обеспечение. – М.: Наука, 1978.
  7. Таненбаум Э. Архитектура компьютера. 5-е изд. – Питер, 2007.
  8. Бек Л. Введение в системное программирование. – М.: Мир, 1988.
  9. Королёв Л.Н. Микропроцессоры, микро- и мини-ЭВМ. – М.: Изд-во МГУ, 1989.
  10. Королёв Л.Н. Архитектура процессоров электронных вычислительных машин. – М.: Издательский отдел факультета ВМК МГУ им. М.В. Ломоносова, 2003.
  11. Баула В.Г. Введение в архитектуру ЭВМ и системы программирования. – М.: Изд. отдел ф-та ВМиК МГУ, 2007.
  12. Баула В.Г., Томилин А.Н., Волканов Д.Ю. Архитектура ЭВМ и операционные среды. – М.: Академия, 2011,2012.

Сайт поддержки курса: http://arch.cs.msu.su Литература к курсу: http://arch.cs.msu.su/semestr2

Masm2 (last edited 2015-06-06 18:32:24 by FrBrGeorge)