Экзаменационные вопросы по курсу "Архитектура ЭВМ и язык ассемблера" для гр.115, 116

Список экзаменационных вопросов по курсу «Архитектура ЭВМ и язык ассемблера» для гр.115, 116

Лектор: доц. А.В.Столяров

В каждом билете будет два вопроса: один из частей 1, 4, 5 и второй из частей 2, 3

  1. Общие сведения
    1. История развития вычислительной техники; четыре поколения ЭВМ
    2. Архитектурные принципы фон Неймана
    3. Основы построения ЭВМ: процессор, шина, память
    4. Внешние устройства и взаимодействие с ними; понятия контроллера и порта ввода-вывода, драйверы устройств
    5. Кеширование оперативной памяти
    6. Прямой доступ к памяти (DMA) с помощью контроллера DMA и выделенных каналов DMA
    7. Прямой доступ к памяти с использованием арбитра шины
    8. Представление целых чисел в памяти компьютера; знаковые и беззнаковые числа, перенос в несуществующий разряд, дополнительный код, переполнение
    9. Машинные команды и машинный код; цикл выполнения команд; управление и передача управления
    10. Понятие ассемблера; язык ассемблера
  2. Система команд процессора i386
    1. Система регистров процессора i386
    2. Команды процессора i386: операнды, типы операндов, разрядность операндов
    3. Процессор i386: команда MOV и её пять основных форм в зависимости от типов операндов
    4. Прямая и косвенная адресация памяти в процессоре i386; общий вид исполнительного адреса, команда LEA
    5. Процессор i386: сложение, вычитание и сравнение целых чисел; влияние этих операций на регистр флагов
    6. Процессор i386: операции увеличения и уменьшения на единицу, операция смены знака, влияние этих операций на регистр флагов
    7. Процессор i386: умножение целых чисел (знаковых и беззнаковых); влияние операций умножения на регистр флагов
    8. Процессор i386: деление целых чисел (знаковых и беззнаковых); исключительные ситуации, связанные с делением
    9. Процессор i386: операции знакового и беззнакового расширения разрядности
    10. Процессор i386: побитовые логические операции
    11. Процессор i386: операции простого и арифметического побитового сдвига
    12. Процессор i386: классификация команд передачи управления в зависимости от <<дальности>>
    13. Процессор i386: прямая и косвенная адресация в командах передачи управления, использование абсолютной и относительной адресации
    14. Процессор i386: команда безусловного перехода и её возможные формы
    15. Процессор i386: команды условных переходов в зависимости от значения отдельных флагов
    16. Процессор i386: команды условных переходов в зависимости от результата операции над знаковыми числами
    17. Процессор i386: команды условных переходов в зависимости от результата операции над беззнаковыми числами
    18. Организация ветвления (оператора if-else) с помощью команд условных и
      безусловных переходов
    19. Организация циклов с предусловием и постусловием с помощью команд условных и безусловных переходов
    20. Процессор i386: команды LOOP и JECXZ, LOOPE/LOOPZ, LOOPNE/LOOPNZ; организация арифметических циклов
    21. Процессор i386: организация стека, команды занесения в стек и извлечения из стека (основные и дополнительные); временное хранение информации в стеке
    22. Процессор i386: команды вызова (временной передачи управления) и возврата управления; организация подпрограмм
    23. Организация стекового фрейма для хранения параметров и локальных переменных подпрограммы
    24. Основные конвенции связи с подпрограммами, их достоинства и недостатки
    25. Процессор i386: команды семейств STOS, LODS и MOVS, префикс REP
    26. Процессор i386: команды семейств SCAS и CMPS, префиксы REPE/REPNE
  3. Арифметика чисел с плавающей точкой
    1. Представление чисел с плавающей точкой: знак, мантисса, порядок, смещение порядка; области потери значимости, денормализации, переполнения
    2. Представление чисел с плавающей точкой: обычный, двойной и расширенный формат; числа с плавающей точкой особого вида
    3. Основные регистры арифметического сопроцессора и их организация в виде стека
    4. Служебные регистры арифметического сопроцессора и команды для управления
    5. Команды обмена данными с арифметическим сопроцессором и для загрузки часто употребляемых констант
    6. Арифметический сопроцессор: команды арифметических действий (сложения, вычитания, умножения, деления) и их основные формы
    7. Вычисление выражений в польской инверсной записи с использованием команд арифметического сопроцессора в форме без операндов
    8. Команды арифметического сопроцессора для работы с целыми числами
    9. Команды арифметического сопроцессора для округления, смены знака и взятия модуля числа
    10. Команды арифметического сопроцессора для вычисления математических функций
    11. Использование команд арифметического сопроцессора для возведения произвольного числа в произвольную степень
    12. Сравнение чисел с плавающей точкой средствами сопроцессора и организация условных переходов по результатам такого сравнения
    13. Обработка исключительных ситуаций при вычислениях с плавающей точкой
  4. Ассемблер NASM и программное окружение
    1. Основы синтаксиса ассемблера NASM: строка как синтаксическая единица, поля меток, команд, операндов и комментариев, верхний и нижний регистр букв
    2. Ассемблер NASM: допустимые имена меток, локальные метки
    3. Метки с именами, совпадающими с ключевыми словами ассемблера
    4. Псевдокоманды ассемблера NASM для резервирования памяти, определения данных, ассоциации метки с явно заданным числом; директива TIMES
    5. Правила записи констант в ассемблере NASM
    6. Ассемблер NASM: вычисление выражений во время ассемблирования; критические выражения
    7. Раздельная трансляция и её поддержка в ассемблере NASM; директивы GLOBAL и EXTERN
    8. Понятие объектного кода и библиотеки; алгоритм работы редактора связей
    9. Макропроцессор; понятия макроса, макроопределения, макровызова и макроподстановки
    10. Макропроцессор ассемблера NASM: основные возможности; директивы %include, %define, определение макросимволов в командной строке ассемблера
    11. Однострочные макросы ассемблера NASM, <<ленивые>> макросы, макропеременные
    12. Директивы условной компиляции ассемблера NASM
    13. Макроповторения в ассемблере NASM
    14. Многострочные макросы в ассемблере NASM
    15. Локальные метки для многострочных макросов
    16. Многострочные макросы с переменным числом параметров; макродиректива %rotate
    17. Макродирективы ассемблера NASM для работы со строками
    18. Возможности командной строки ассемблера NASM
  5. Выполнение программы под управлением операционной системы
    1. Понятие одновременности выполнения программ и мультизадачный режим работы
    2. Основные виды мультизадачности
    3. Требования к аппаратуре, налагаемые мультизадачным режимом работы
    4. Понятие виртуальной памяти и MMU; простейшая модель виртуальной памяти
    5. Сегментная модель виртуальной памяти
    6. Страничная модель виртуальной памяти
    7. Организация памяти работающей программы; основные секции, их назначение и особенности
    8. Ядро операционной системы и процессы
    9. Прерывания, исключения и системные вызовы
    10. Конвенция системных вызовов в ОС Linux/i386 и ОС FreeBSD/i386; примеры системных вызовов
    11. Точка входа в программу и обработка параметров командной строки в ОС Linux/i386 и ОС FreeBSD/i386