«Никогда не программируйте на ассемблере» – первое правило Константина Владимирова, преподавателя МФТИ и автора курса по C и ассемблеру, но зачем тогда разработчику уметь его читать? Представьте, что в дебаге программа работает, а в релизе падает при чтении из памяти. В отладчике можно проследить, как программа вычислила адрес, по которому попыталась прочитать данные.
В выпуске разбираем, почему компилятор оставляет лишнее чтение из памяти в горячем цикле, когда пригодится ассемблерная вставка и почему GPU-ядро может замедлиться, если компилятору не хватает регистров. А ещё обсуждаем, как выбрать первую задачу, в которой пригодится чтение ассемблера, и где в этой работе помогают нейросети.
Содержание:
- 00:00 О чём выпуск?
- 05:56 Что такое ассемблер и зачем его читать
- 20:38 Когда реально нужен ассемблер?
- 25:30 Почему у процессоров разные системы команд
- 29:50 Чем ISA отличается от ABI
- 48:36 Как подступиться к низкоуровневой разработке
- 01:00:05 Как процессоры получают новые инструкции
- 01:09:49 ИИ, ассемблерные вставки и разбор бинарников
- 01:18:00 Будущее open source проектов в эпоху ИИ
- 01:21:31 Заключение

