Assembler

Введение

Язык ассемблера — это читаемая человеком форма машинного кода: одна инструкция на одну операцию процессора, без среды выполнения, ничего не скрыто. Этот сайт учит ему на x86-64 Linux с NASM: от регистров и системных вызовов до SIMD, сокетов и загрузочного сектора.

Ниже собрано всё про ассемблер на этом сайте: курс из 50 уроков, руководства по установке и внешние материалы.

Курс
Курс по ассемблеру: от нуля до героя за 50 уроков
Курс по ассемблеру: от нуля до героя за 50 уроков
Что такое язык ассемблера
Установка NASM и проверка версии
Основы синтаксиса NASM
Первая программа
Регистры
MOV и передача данных
Системы счисления и операнды
Задание строк и данных
Флаги и регистр состояния
Условные переходы
Циклы
Стек
Процедуры
LEA и режимы адресации
Раскладка памяти: секции
Системные вызовы Linux
Арифметика
Побитовые операции
Массивы
Структуры
Макросы
Вызов функций C
Отладка в GDB
Формат ELF
Системные вызовы времени и даты
Файловый ввод-вывод
Аргументы командной строки
Переменные окружения
Плавающая точка (SSE)
Основы SIMD
Прерывания
Сокеты
Крошечный HTTP-клиент
Форматы вывода: bin, elf, elf64
Продвинутые макросы и %include
Компоновка объектных файлов
32 бита против 64 бит
ABI System V
Makefile для ассемблера
Основы оптимизации
Коды ошибок и журналирование
Разбор CSV
Структуры данных: связный список
Крошечный HTTP-сервер
Загрузочный сектор: «hello» в 512 байтах
Итоговый проект: калькулятор в командной строке
Итоговый проект: шестнадцатеричный редактор
Производительность: такты и кэш
Современный x86: обзор AVX
Дорожная карта героя: весь курс на одной странице
Ассемблер ARM
Установка NASM
Установка NASM в Windows 11
Установка NASM в Ubuntu
Установка NASM в Rocky Linux
Установка NASM в macOS
Установка NASM в FreeBSD
Ассемблер в Docker
Внешние материалы
Документация NASM
Справочник инструкций x86 и x86-64
System V ABI, редакция для x86-64