Глава 1. Введение в ассемблер GAS для Intel x86-64
Архитектура Intel x86-64
Представление данных, биты и байты
Регистры процессора
Ассемблер GAS.Начало работы на Linux
Первая программа на GAS
Глава 2. Основы ассемблера GAS для Intel x86-64
Инструкция MOV. Копирование данных
Сложение и вычитание
Умножение. Инструкция mul
Деление. Инструкции div и idiv
Переходы. Инструкция jmp
Флаги состояния и условные переходы
Сравнение. Инструкция CMP
Инструкции условного копирования
Инструкция цикла loopq
Логические операции
Сдвиг и вращение
Глава 3. Работа с данными и памятью
Определение переменных и типы данных. Секция .data
Косвенная адресация
Получение текущего адреса
Константы
Символы
Строки
Структуры
Стек
Глава 4. Строки
Копирование строк
Сравнение строк
Поиск в строке
Глава 5. Функции
Определение и вызов функций
Сохранение регистров и переменных при вызове функций
Параметры функции
Результат функции
Фрейм стека и локальные переменные
Организация программы
Глава 6. Системные вызовы
Системные вызовы в Linux и инструкция syscall
Глава 7. Взаимодействие кода ассемблера и C/C++
Вызов функций C/C++ из ассемблера
Вызов функции ассемблера из C/C++
Работа с файлами
Глава 8. Разделяемые библиотеки
Подключение разделяемых библиотек
Создание разделяемой библиотеки
Код, независимый от позиции
Переопределение общих библиотек
Программная загрузка библиотек
Глава 9. SIMD
Числа с плавающей точкой
Расширения SSE и AVX/AVX2
Копирование данных с помощью инструкций SIMD
Преобразование чисел с плавающей точкой в целые числа и обратно
Арифметика чисел с плавающей точкой
Сравнение чисел с плавающей точкой
Операции сдвига SSE/AVX
Логические операции над векторами
Сложение с помощью инструкций SSE/AVX
Вычитание с помощью инструкций SSE/AVX
Умножение с помощью инструкций SSE/AVX
Математические инструкции SSE/AVX
Сравнение целых чисел в SSE/AVX
Арифметические операции с векторами чисел с плавающей точкой
Сохранение состояния регистров SSE/AVX
Глава 10. Объектно-ориентированное программирование
Определение классов
Полиморфизм
Наследование
Глава 11. GNU ассемблер AS под Windows
Первая программа на Window
Взаимодействие с кодом C/C++ на Windows
Взаимодействие с WinAPI
Системные вызовы Windows
Глава 12. GNU ассемблер под MacOS Intel x86-64
Первая программа на MacOS
Глава 13. Дополнительные статьи
Введение в отладку с помощью GDB
Стек и окружение программы