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