Чему вы научитесь
- Понимать модель данных и модель выполнения программы на уровне процессора
- Работать с регистрами
- Использовать препроцессор: константы, макросы, условную компиляцию
- Отлаживать ассемблерные программы в GDB: точки останова, watchpoints, просмотр регистров и памяти
- Обрабатывать аргументы командной строки и коды возврата
- Оптимизировать код с учётом конвейера процессора, кэша, предсказания переходов
- Организовывать многофайловую сборку и писать Makefile — от простого до многорежимного
- Понимать, что такое SIMD и когда векторизация действительно ускоряет код
- Загружать, сохранять и выполнять скалярную и упакованную арифметику с числами с плавающей точкой
- Ориентироваться в семействах расширений (SSE, SSE2, AVX, AVX2) и собирать программы с их использованием
- Вызывать функции Windows API из ассемблера напрямую, без прослойки в виде C
- Писать код, который компилируется и работает без изменений и на Linux, и на Windows
О курсе
Программа курсов, которая познакомит вас с миром ассемблера сразу для двух операционных систем - Linux x86-64 и Windows x64.
Для кого этот курс
Для абсолютно всех желающих познакомиться с языком ассемблера. А так же для тех, кто хочет в дальнейшем заниматься системным программированием и понимать, как код работает на уровне процессора.
Начальные требования
Особых знаний не понадобится, но будет большим плюсом знание С/С++. Так же понадобится устройство с установленной ОС Linux x86-64 (Windows по желанию для 4 курса)
Преподаватели курса
Как проходит обучение
Все обучение построено по одному сценарию - вам дается вся необходимая теория, после которой следуют практические и теоретические задания для проверки усвоения теории. Так же в конце каждого курса вас ждут небольшие проекты.
Что вы получите
- Поддержку преподавателя
- Понимание языка ассемблера
- Умение писать код на NASM
- Работать с двумя ОС