• Складчины
  • Программирование

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

Найти складчину
  • Дата начала Сегодня в 11:31
Цена: 150 РУБ
Показать больше
Записаться и Купить Записаться
Скачать
Скачать Скачать Скачать
Robot
Складчик
  • Сегодня в 11:31
  • #1

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

Ссылка на картинку
Пакет курсов "База 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 для оптимизации и ускорения расчетов в критически важных местах.
Читать далее...
Показать больше
 
Зарегистрируйтесь , чтобы посмотреть контент.
nasm linux stepik ассемблер виталий богодухов целые числа
Похожие складчины
Скачать [Stepik] Указатели и память С++ (Виталий Богодухов)
  • 10 Авг 2024
  • в разделе: Программирование
Скачать [Stepik] Стандартные алгоритмы С++20 и новее [Виталий Богодухов]
  • 25 Июн 2025
  • в разделе: Программирование
Скачать [Stepik] Стандартные алгоритмы С++ [Vitaliy Bogodukhov]
  • 14 Июн 2024
  • в разделе: Программирование
Скачать [Stepik] Курс Linux [Денис Корчагин]
  • 2 Апр 2026
  • в разделе: Программирование
Скачать [Stepik] Java-разработчик Java + ООП + SQL + Linux + Git [Оксана Еськова]
  • 20 Июн 2026
  • Java
  • в разделе: Java

Войдите или зарегистрируйтесь!

Учетная запись позволит вам участвовать в складчинах и оставлять комментарии

Регистрация

Создайте аккаунт. Это просто!

Регистрация

Вход

Вы уже зарегистрированы? Войдите.

Войти
  • Складчины
  • Программирование
  • Russian (RU)
  • Обратная связь
  • Условия и правила
  • Политика конфиденциальности
  • Справка