Архитектура ЭВМ и язык ассемблера.
Вопросы для подготовки к экзамену. III поток.
1.	Понятие архитектуры ЭВМ. Требования быстродействия, надежности и ограниченной стоимости при построении ЭВМ.
2.	Схема устройства ЭВМ: ЦП, ОП, внешние устройства. Назначение устройств.
3.	ЦП. Понятия машинной операции, машинной команды, системы команд процессора.
4.	ОП. Понятия ячейки ОП, адреса ячейки, объема ОП, машинного слова.
5.	Виды внешних устройств: внешняя память, устройства ввода-вывода. Отличия внешней памяти от ОП. Параллелизм в работе ЦП+ОП и внешних устройств. Шина. Модели архитектуры ЭВМ с одной шиной, с несколькими шинами.
6.	Представление чисел в ЭВМ: числа без знака, со знаком. Способы получения дополнительного кода. Сложение и вычитание знаковых/беззнаковых чисел. Арифметические флаги, способы определения значения флагов.
7.	Представление вещественных чисел. Нормализованные числа, диапазон представимости, отсутствие ассоциативности умножения. Алгоритмы выполнения сложения и умножения. Вещественные числа в ПК.
8.	Принципы Джона фон Неймана.
9.	Трехадресная учебная машина. Устройство ЦП. Такт работы процессора. Выполнение арифметических команд и команд перехода.
10.	Двухадресная учебная машина. Преимущества по сравнению с УМ-3.  Исключение третьего адреса из команд. Выполнение команд условного перехода.
11.	Учебная машина с переменным форматом команд. Преимущества, недостатки.
12.	Стековая учебная машина. Преимущества, недостатки. Программирование формул в УМ-С.
13.	Учебная машина с регистрами. Структура ЦП. Длинные и короткие машинные команды. Преимущества использования регистров.
14.	Учебная машина с модификацией адресов. Понятие самомодифицирующейся программы. Модификация адресов. Преимущества.  Базирование адресов.
15.	Автоматизация программирования в машинных кодах.
16.	Архитектура ПК: схема ЦП, регистры ЦП. ОЗУ: байт, слово, двойное слово. Машинные команды: виды операндов. Представление данных: числа, символы.
17.	Типы предложений языка MASM. Лексемы: идентификаторы, числа, строки. Директивы определения данных. Директива EQU. Константные и адресные выражения.
18.	Команды языка MASM. Запись операндов. Команды пересылок, оператор PTR.
19.	Арифметические команды. Знаковое и беззнаковое расширения чисел.
20.	Команды перехода. Действие команд перехода. Виды переходов: внутрисегментные и межсегментные, прямые и косвенные. Условные переходы. Проверка выполнимости условий перехода по значению флагов. Команда LOOP.
21.	Вспомогательные команды ввода-вывода.
22.	Массивы. Описание, доступ к элементу. Операторы TYPE, LENGTH, SIZE, OFFSET. Правила записи адресных выражений.
23.	Структуры. Описание типа, смысл имени поля. Описание переменной. Доступ к полю структуры. Работа с массивами структур.
24.	Битовые команды: логические команды, сдвиги. Связь между арифметическими операциями и битовыми командами. Работа с упакованными данными.
25.	Записи. Описание типа, смысл имени поля. Операторы WIDTH, MASK. Описание переменной, доступ к полю записи.
26.	Абсолютные адреса, соглашение о сегментных регистрах, префиксы замены сегмента. Структура программы: программные сегменты, директива ASSUME. Работа с сегментными регистрами.
27.	Стек. Описание сегмента стека. Загрузка регистров SS и SP. Команды PUSH и POP. Работа со стеком через регистр BP.
28.	Процедуры. Описание процедуры. Близкие и дальние процедуры. Команды CALL и RET. Передача параметров через регистры. Передача параметров через стек, паскалевские соглашения о передаче параметров. Стандартные входные и выходные действия процедур.
29.	Строковые команды. Источник и получатель. Флаг DF, команды CLD и STD. Строковые примитивы. Префиксы повторения.
30.	Списки. Организация «кучи». Описание списка. Процедуры работы со списками.
31.	Макросредства. Переописываемые имена, директивы EQU и =. Условное ассемблирование. Блоки повторения, макросы общего вида: распознавание формальных параметров в теле макроса, списки фактических параметров, виды фактических параметров. Директива LOCAL.
32.	Многомодульные программы. Описание модуля. Внешние и общие имена. Работа с внешними переменными. Объединение программных сегментов (параметр PUBLIC  директивы SEGMENT). Включение ассемблерной процедуры в программу на Turbo Pascal’е.
33.	Процесс ассемблирования. Таблицы ассемблера. Два прохода ассемблера.
34.	Структура объектного модуля. Работа компоновщика: объединение сегментов, редактирование внешних связей. Работа загрузчика.
35.	Понятие динамического связывания. Динамическое связывание в системе Multics. Явное и неявное связывание в Windows.
36.	Понятие прерывания. Внутренние и внешние прерывания. Аппаратная и программная реакция на прерывание. Обработка прерываний с разными приоритетами.
37.	Организация ввода-вывода: уровень портов, уровень ОС.
38.	Конвейер: основная идея, суперскалярная архитектура. Команды перехода: отсрочка ветвления, динамическое и статическое предсказание ветвления. Связь по данным: RAW, WAR и WAW.
39.	Расслоение ОП. Кэш-память: основная идея, работа с кэш-памятью, способы организации кэш-памяти.