Открыто

База Ассемблера (NASM Linux x86-64) [Stepik] [Виталий Богодухов]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 11 июл 2026.

Цена: 3 590р-83%
Взнос: 594р

Основной список: 8 участников

  1. 11 июл 2026
    #1
    Топикстартер
    Топикстартер Член клуба

    Складчина: База Ассемблера (NASM Linux x86-64) [Stepik] [Виталий Богодухов]

    upload_2026-7-11_10-58-29.png

    Пакет курсов "База NASM" познакомит Вас со всем необходимым для начала работы с языком ассемблера NASM и позволит развиваться в уже более специфичном направлении.

    Чему вы научитесь:
    • Писать собственные программы на Ассемблере
    • Эффективно работать с данными и памятью
    • Оптимизировать код
    • Писать функциональные и модульные программы
    • Отлаживать программы
    • Писать высокопроизводительный код
    Пакет курсов включает в себя следующее:
    • Базовый ассемблер - в нем Вы познакомитесь с основными регистрами и конструкциями, начнете писать свои первые простые программы. Так же будет много практики, теории и примеров.
    • Углублённый ассемблер — здесь Вы узнаете о более продвинутых концепциях, таких как работа с памятью на низком уровне, оптимизация кода, использование макросов и подпрограмм, а также о взаимодействии с аппаратными компонентами. Курс включает практические задания, где Вы будете писать более сложные программы, отлаживать их и анализировать эффективность работы кода.
    • SIMD - это дополнение, которое поможет Вам писать выскопроизводительные и оптимизированные программы, которые могут работать на больших данных.
    Для кого эта программа и начальные требования:
    • Для всех желающих понять ассемблер и просто получить интересный опыт.
    • Никаких особых знаний не потребуется, но будет плюсом знание С/С++.
    Что вы получаете:
    • Интересный опыт
    • Навык написания программ на асссемблере
    В комплект входят 3 курса.

    Программа:

    1. Ассемблер (NASM Linux x86-64) — Базовый уровень

    Как все работает
    • Информация по прохождению
    • Запуск на Linux
    • Этапы работы программы
    • Модель данных
    • Модель выполнения
    Базовый уровень
    • Копирование с MOV
    • Арифметика
    • Флаги процессора
    • Сравнение с CMP
    • Безусловный переход с JMP
    • Условные переходы
    • Циклы
    • Логические операции
    • Сдвиги
    Работа с данными и памятью
    • Память
    • Переменные
    • Массивы и адресация
    • Структуры
    • Получение адреса с LEA
    • Строки
    • Endianness
    • Введение в стек
    Функциональное программирование
    • Переход + возврат
    • Что происходит при вызове
    • Стек вызовов
    • Параметры
    • Возврат значения. Часть 1
    • Локальные переменные
    • Возврат значения. Часть 2
    • Сохранение регистров
    Взаимодействие с системой
    • Что такое syscall
    • SYSCALL
    • Ввод / вывод
    Препроцессор
    • Константы
    • Подключение файлов
    • Макросы
    • Условные конструкции
    Итоги
    • Реализация алгоритмов
    • Мини-проект "Калькулятор"
    • Мини-проект "Конвертер чисел"
    • Мини-проект "Сортировщик файлов"
    • Список пройденного
    • Что дальше?
    2. Ассемблер (NASM Linux x86-64) — Углублённый уровень

    Отладка и инструменты
    • GDB для ассемблера: запуск, пошаговое выполнение
    • Просмотр регистров, памяти и стека в GDB
    • Точки останова и watchpoints
    • objdump: анатомия бинарного файла
    • strace: наблюдение за системными вызовами
    • Шпаргалки по отладке
    Системные вызовы и работа с ОС
    • Работа с файлами
    • Работа с каталогами
    • Динамическая память
    • Аргументы командной строки
    • Коды возврата и обработка ошибок
    Взаимодействие с C и другими языками
    • Вызов функций стандартной библиотеки C из ассемблера
    • Передача структур и массивов через ABI
    • Написание функций на ассемблере для вызова из C и C++
    • Inline assembly в GCC и Clang
    • Создание статических и динамических библиотек
    • FFI с Python через ctypes
    • FFI с Java через JNA и JNI
    Организация проектов
    • Многофайловая сборка
    • Основы Makefile
    • Makefile: шаблоны, автоматические переменные и функции
    • Makefile: многорежимная сборка
    • Линковка с внешними библиотеками
    • Сложные макросы и условная компиляция
    • Автоматическая генерация кода препроцессором
    Память и данные
    • Виртуальная память
    • Карта памяти процесса
    • Выравнивание структур и padding
    • Pointer arithmetic в больших массивах
    • Отображение файлов в память
    • Написание простого аллокатора памяти
    Оптимизация и производительность
    • Конвейер процессора и суперскалярное выполнение
    • Как работает кэш: L1, L2, L3 и cache line
    • Выравнивание данных под кэш
    • Минимизация обращений к памяти
    • Оптимизация циклов: развёртка и предвычисления
    • Предсказание переходов
    • Устранение ложных зависимостей между инструкциями
    • Измерение и профилирование: rdtsc и perf
    Итоги
    • Практическая задача Ⅰ
    • Практическая задача ⅠⅠ
    • Практическая задача ⅠⅠⅠ
    • Список пройденного
    • Что дальше?
    3. SIMD (Ассемблер NASM Linux x86-64)

    Основы
    • Что такое SIMD
    • Регистры xmm и ymm
    • Выравнивание данных и кэш
    • Семейства расширений
    • Сборка и запуск
    Числа с плавающей точкой
    • Загрузка и сохранение
    • Скалярная арифметика
    • Упакованная арифметика
    • Горизонтальные операции
    • Сравнение
    • Преобразование типов
    • Математические инструкции
    • Управление точностью
    Целые числа
    • Загрузка, сохранение и арифметика
    • Умножение
    • Сдвиги
    • Логические операции
    • Сравнение и маскирование
    Сбор и разбор данных
    • Перестановки и компоновка
    • Shuffle
    • Unpack
    • Blend
    Переход на AVX и AVX2
    • Трёхоперандный синтаксис
    • 256-битные операции
    • Broadcast
    • Смешивании SSE и AVX
    • Сохранение и восстановление регистров
    Итоги
    • Когда SIMD не помогает
    • Мини-проект
    • Список пройденного
    Автор Виталий Богодухов (Vitaliy Bogodukhov)
    • Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает. — Rick Cook
    • Закончил обучение по направлению "Бэкенд разработчик С++" и успешно работаю c 2020 года.
    • В данный момент занимаюсь переносом программ с Python, Go и других языков на C++, NASM и Fortran для оптимизации и ускорения расчетов в критически важных местах.
    Цена 3590 руб.
    Скрытая ссылка
     
    1 человеку нравится это.
  2. Последние события

    1. Квентин
      Квентин участвует в складчине.
      13 июл 2026
    2. Shum Zhizni
      Shum Zhizni не участвует в складчине.
      12 июл 2026
    3. Shum Zhizni
      Shum Zhizni участвует в складчине.
      12 июл 2026
    4. Riozz
      Riozz участвует в складчине.
      12 июл 2026

    Последние важные события

    1. skladchik.com
      Назначен организатор складчины.
      11 июл 2026