Руководство по ассемблеру NASM

Последнее обновление: 30.01.2024
  1. Глава 1. Введение в архитектуру Intel x86-64 и ассемблер NASM

    1. Архитектура Intel x86-64

    2. Представление данных, биты и байты

    3. Регистры процессора

    4. Первая программа на Linux

    5. Первая программа на Windows

    6. Первая программа на MacOS

  2. Глава 2. Основы ассемблера NASM

    1. Инструкция MOV. Копирование данных

    2. Сложение и вычитание

    3. Переходы. Инструкция jmp

    4. Флаги состояния и условные переходы

    5. Сравнение. Инструкция CMP

    6. Инструкции условного копирования

    7. Инструкция цикла loop и jrcxz

    8. Умножение. Инструкции mul и imul

    9. Деление. Инструкции div и idiv

    10. Логические операции

    11. Сдвиг и вращение

  3. Глава 3. Работа с данными и памятью

    1. Определение переменных и типы данных. Секция .data

    2. Косвенная адресация

    3. Получение текущего адреса

    4. Константы

    5. Символы

    6. Строки

    7. Порядок байтов. Big-endian и little-endian

    8. Структуры

    9. Стек

    10. Копирование и сохранение в строку

    11. Сравнение строк

    12. Поиск в строке

  4. Глава 4. Функции

    1. Определение и вызов функций

    2. Сохранение регистров и переменных при вызове функций

    3. Параметры функции

    4. Результат функции

    5. Фрейм стека и локальные переменные

    6. Локальные метки

    7. Организация программы

  5. Глава 5. Системные вызовы

    1. Системные вызовы в Linux и инструкция syscall

  6. Глава 6. Взаимодействие кода ассемблера и C/C++

    1. Вызов функций C/C++ из ассемблера на Linux

    2. Вызов функций C/C++ из ассемблера на Windows

    3. Вызов функции ассемблера из C/C++

    4. Передача структур между ассемблером и C/C++

    5. Работа с файлами

  7. Глава 7. SIMD

    1. Числа с плавающей точкой

    2. Расширения SSE и AVX/AVX2

    3. Копирование данных с помощью инструкций SIMD

    4. Преобразование чисел с плавающей точкой в целые числа и обратно

    5. Арифметика чисел с плавающей точкой

    6. Сравнение чисел с плавающей точкой

    7. Операции сдвига SSE/AVX

    8. Логические операции над векторами

    9. Сложение с помощью инструкций SSE/AVX

    10. Вычитание с помощью инструкций SSE/AVX

    11. Умножение с помощью инструкций SSE/AVX

    12. Математические инструкции SSE/AVX

    13. Сравнение целых чисел в SSE/AVX

    14. Арифметические операции с векторами чисел с плавающей точкой

    15. Сохранение состояния регистров SSE/AVX

  8. Глава 8. Препроцессор

    1. Директивы препроцессора

    2. Условные конструкции препроцессора

    3. Макросы

  9. Глава 9. Разделяемые библиотеки в Linux

    1. Создание разделяемых библиотек для Linux

    2. Код, независимый от позиции

    3. Подключение встроенных библиотек Linux

    4. Переопределение общих библиотек

    5. Программная загрузка библиотек

  10. Глава 10. Дополнительные статьи

    1. Стек, аргументы программы и переменные окружения в Linux

    2. Манипуляции с консолью и курсором

    3. Реализация конечных автоматов

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850