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

  • Гость, подпишитесь сейчас

    📥 Наш адрес сайта меняется, чтобы быть в курсе актуального адреса, подпишитесь на телеграм канал «Перейти»

Описание складчины

Программирование востребовано в веб-разработке, мобильных приложениях, автоматизации и анализе данных. [Stepik] База Ассемблера. NASM Linux x86-64 [Виталий Богодухов] поможет освоить необходимые навыки, а складчина сделает обучение доступнее.

Информация
Цена: 150 РУБ
Организатор: Kail Kail
Скачать
Kail
Kail
Организатор
Организатор
Регистрация
09.04.2020
Сообщения
449 368
Реакции
44 616
Монеты
1 191
Оплачено
0
Баллы
0
  • #SkladchinaVip
  • #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 ассемблер виталий богодухов целые числа
Похожие складчины
Kail
Ответы
0
Просмотры
101
Kail
Kail
Kail
Ответы
0
Просмотры
157
Kail
Kail
Kail
Ответы
0
Просмотры
55
Java
Kail
Kail
Kail
Ответы
0
Просмотры
146
Kail
Kail
Kail
Ответы
0
Просмотры
79
Kail
Kail
Показать больше складчин

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

Вы должны быть авторизованны для просмотра материала

Создать аккаунт

Создать учетную запись займет не больше минуты!

Войти

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