Шестнадцатеричная система счисления. Знаковые числа, дополнительный код. Арифметические операции. Флаги: CF, SF, OF и ZF.
Архитектура IA32: основные регистры, форматы команд. Порядок байт в памяти. Машинные типы данных: байт, слово, двойное слово, четверное слово.
Отображение операторов разыменование указателя и взятия адреса из языка Си в язык ассемблера. Размещение различных типов переменных языка Си в памяти компьютера. Работа у указателями. Адресная арифметика.
Инструкции в IA32/nasm: арифметические, логические, битовые, сдвиги и вращения.
Передача управления. Условные и безусловные переходы. Реализация управляющих операторов языка Си на языке ассемблера. Восстановление управляющих операторов и выражений языка Си из машинного кода.
Массивы: одномерные, многомерные, многоуровневые. Расположение в памяти, способы работы с отдельными элементами.Преобразование индексных выражений в адресную арифметику.
Соглашение о вызове функций cdecl. Распределение памяти во фрейме функции. Возвращаемое значение в соглашении cdecl. Выравнивание фреймов в стеке. Организация вызова функций стандартной библиотеки языка Си из ассемблерного кода.
Организация аппаратного обеспечения компьютера. Логические вентили. Сумматор, мультиплексор, сравнение битов/слов.
НЖМД (винчестер): устройство, организация доступа к хранимой информации, емкость, временные характеристики доступа.
Система программирования языка Си. Программные инструменты, используемые при разработке Си-программ. Порядок сборки Си-программы. Статическая компоновка программы. Схема работы компоновщика: разрешение символов и перемещение кода. Обработка компоновщиком нескольких символов с одинаковыми именами: сильные и слабые символы.
Pingback: Экзамен | Архитектура ЭВМ и язык ассемблера