Шестнадцатеричная система счисления. Знаковые числа, дополнительный код. Арифметические операции. Флаги: CF, SF, OF и ZF.
Архитектура IA-32: основные регистры, форматы команд. Порядок байт в памяти. Машинные типы данных: байт, слово, двойное слово, четверное слово. Аппаратный стек.
Инструкции в IA-32/nasm: пересылки, в том числе условные, арифметические, логические, битовые, сдвиги и вращения, передачи управления.
Отображение операторов разыменование указателя и взятия адреса из языка Си в язык ассемблера. Размещение различных типов переменных языка Си в памяти компьютера. Работа с указателями. Адресная арифметика.
Массивы: одномерные, многомерные, многоуровневые. Расположение в памяти, способы работы с отдельными элементами. Преобразование индексных выражений в адресную арифметику.
Реализация классов памяти языка Си на уровне языка ассемблера, размещение переменных: глобальных, статических, автоматических. Приведение типов данных. Работа со знаковыми и беззнаковыми числами.
Передача управления. Условные и безусловные переходы. Связь регистра EFLAGS и мнемонических кодов условий. Реализация управляющих операторов языка Си на языке ассемблера.
Организация работы со структурами и объединениями языка Си на уровне языка ассемблера. Доступ к полям. Выравнивание данных в ОС Windows и Linux. Размер агрегатных типов данных.
Соглашение о вызове функций cdecl. Распределение памяти во фрейме функции. Возвращаемое значение в соглашении cdecl. Функции с переменным числом параметров.
Соглашение вызова stdcall, fastcall, реализация вызова функции без использования указателя фрейма, гибридное соглашение вызова.
Выравнивание фреймов в стеке. Организация вызова функций стандартной библиотеки языка Си из ассемблерного кода.
Управление динамической памятью. Пропускная способность и эффективность расходования. Внутренняя и внешняя фрагментация. Управление свободными блоками: неявный список.
Представление чисел с плавающей точкой. Стандарт IEEE 754. Свойства чисел с плавающей точкой. Операции над числами с плавающей точкой. Округление чисел.
Сопроцессор FPU x87. Аппаратный стек регистров. Организация работы с числами с плавающей точкой в языке Си: пересылка данных, основные арифметические операции.
Устройство современного компьютера, запоминающие устройства: организация, емкость. Соотношение временных характеристик доступа на разных уровнях иерархической памяти компьютера.
Кэш-память процессора, способы ее организации: кэш прямого отображения, N-канальный множественно-ассоциативный кэш, полностью ассоциативный кэш.
Организация виртуальной памяти, страничная трансляция адреса. Буфер быстрого преобразования адреса (TLB).
Многомодульные программы. Глобальные, локальные, внешние имена. Сильные и слабые символы, COMMON-символы .
Объектные файлы формата ELF. Статическая компоновка программы: разрешение символов, перемещение кода, модификация символов и ссылок.
Загрузка исполняемого файла в память. Динамическая компоновка, разделяемые библиотеки. Позиционно независимый код. Глобальная таблица смещений. Ленивое связывание в динамической компоновке. Динамическая загрузка.