Вопросы для письменного зачета по курсу "Архитектура ЭВМ и систем" (гр. 103 - 106)
Общие требования
- В своей работе студент должен продемонстрировать свободное владение введенными в курсе понятиями, определениями, терминологией и примерами в полном объеме лекций и соответствующих разделов справочника.
- Ответы следует излагать кратко, но с необходимой полнотой и в том порядке, в каком в билете сформулированы вопросы.
- Формулируя ответы необходимо также помнить, что русский язык является одним из пяти мировых языков.
- Все ответы необходимо иллюстрировать примерами.
Вопросы
- Уровни пирамиды виртуальных машин.
- Задачи, для решения которых используется язык ассемблера.
- Определение и свойства позиционной системы счисления.
- Алгоритмы перевода чисел из систем с основанием 2, 8 и 16 в десятичную систему.
- Алгоритмы перевода чисел из десятичной системы в системы с основанием 2, 8 и 16.
- Рациональный алгоритм перевода больших десятичных чисел в двоичную систему.
- Алгоритмы переводов 2 -> 8, 2 -> 16, 8 -> 16 (цифры - основания систем счисления).
- Алгоритмы переводов 8 -> 2, 16 -> 2, 16 -> 8 (цифры - основания систем счисления).
- Макроопределение, макровызов, задание формальных и фактических параметров.
- Макрорасширение, получение и использование порядкового номера макровызова.
- Описание файла листинга и счетчик размещения.
- Общая характеристика архитектуры фон Неймана, роль регистра eip.
- Оперативная память, ее адресное пространство, операции чтения и записи.
- Методы хранения и доступа к словам и двойным словам - littlendian и bigendian.
- Регистры eax, ebx, ecx, edx и их специальные свойства.
- Регистры esp, ebp, eip и их специальные свойства.
- Системные вызовы. Назначение, описание, пример.
- Взаимодействие терминала и файла stdin при использовании системного вызова read.
- Архитектурные типы данных. Диапазоны значений целых данных.
- Знаковые и беззнаковые целые, их сравнение и команды арифметики для них.
- Директивы определения данных в языке ассемблера.
- Дополнительный код и его свойства.
- Регистр флагов, его назначение и использование.
- Флаги CF, ZF, SF, OF.
- Переполнение, общие положения. Беззнаковое переполнение.
- Переполнение, общие положения. Знаковое переполнение.
- Команда CMP и семейство команд Jcc, их использование.
- Возникновение языка ассемблера, его основная идея и преимущества перед разработкой программ на языке команд Центрального процессора.
- Адресный доступ к памяти, операнды источники и приемники, характеризация операндов.
- Перемещение (исполнительный адрес) операнда в памяти, определение и преимущества базово-индексной адресации.
- Общая формула режимов адресации, преимущества базово-индексной адресации.
- Базовая адресация.
- Индексная адресация.
- Стековый доступ к памяти.
- Назначение, реализация архитектурного стека, задачи, в которых он используется.
- Модули и функции, общая схема работы функции.
- Основные элементы конструкции функции.
- Виды параметров и способы передачи их функции.
- Соглашения о связи функций принятые в языке C.
- Организация передачи управления функции и возврата в вызывающую программу.
- Адресация параметров функции в стеке.
- Адресация локальных переменных функции в стеке.
- Организация вызова функции на языке ассемблера из программы на языке C.
- Система команд, типы и локализация операндов.
- Структура команды, байты Mod/RM и SIB.
- Основные группы команд в системе команд.
- Особенности записи команд в синтаксисе AT\&T.
- Команды ADC и SBB.
- Команды MUL и IDIV.
- Команды IMUL и DIV.
- Почему необходима раздельная трансляция?
- Раздельная трансляция, определение внешних имен, функции редактора связей.
- Флаги отладочного ассемблирования и управление выполнением программы в отладчике kdbg.