• TopKursy - РЕДКИЕ Удаленные КУРСЫ!

    Эксклюзивные материалы, недоступные на других источниках.

    Откройте доступ к уникальным знаниям прямо сейчас!

    Подробнее

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

Статус
В этой теме нельзя размещать новые ответы.
EGround

EGround

Редактор
Сообщения
66.105
Реакции
285

Складчина: База Ассемблера (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 руб.


Материал «База Ассемблера (NASM Linux x86-64) [Stepik] [Виталий Богодухов]», возможно, скоро появится на EGROUND.
Воспользуйтесь поиском, может быть, он уже опубликован.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу