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 |