Чему вы научитесь
- Объяснять основные принципы работы архитектуры x86_64 (регистры, память, стек, системные вызовы)
- Понимать и интерпретировать несложный код на GNU Assembler (в синтаксисе Intel)
- Анализировать выполнение программ на уровне ассемблера и соответствие кода на ассемблере коду на C++
- Оценивать, как особенности ассемблерного кода влияют на производительность программы
- Писать свой собственный несложный код на ассемблере
- Применять знания о представлении данных и низкоуровневой работе кода для написания более оптимального кода.
О курсе
В рамках данного курса Вы узнаете, как код на C++ превращается в код, понятный компьютеру, изучите основы GNU Assembler и базовые системные вызовы Linux. В курсе рассматривается архитектура x86_64, на которой основано большинство современных компьютеров.
Для кого этот курс
Курс подойдёт
- Студентам технических направлений, которые увлекаются программированием,
- Начинающим разработчикам,
- Молодым преподавателям курсов по программированию,
желающим разобраться, как их код на C++ и других языках программирования превращается в машинный код, а также изучить основы GNU Assembler и научиться писать более осознанный код.
Начальные требования
Для прохождения курса необходимо знать C или C++, иметь базовые навыки программирования, знать школьный курс математики. Также очень желательно наличие возможности работать с Linux на домашнем компьютере или арендованном сервере.