Этот репозиторий представляет собой сборник моих лабораторных работ, выполненных в рамках курса «Программирование на языках Ассемблера». Проект служит как практическое портфолио, демонстрирующее навыки низкоуровневого программирования.
- Изучение архитектуры x86-64 и системы команд
- Освоение языка ассемблера GAS (GNU Assembler) с синтаксисом AT&T
- Понимание принципов работы с памятью, стеком и регистрами
- Практическое применение системных вызовов Linux и взаимодействия с библиотекой C (
libc) - Развитие навыков отладки и анализа низкоуровневого кода (
gdb)
- Архитектура: x86-64
- Язык: Assembly (GAS)
- Инструменты:
- Ассемблер: GNU Assembler (
as) - Компоновщик: GNU Linker (
ld) - Система сборки: GNU Make
- Текстовый редактор: Nvim (v0.7.2)
- Ассемблер: GNU Assembler (
- Окружение: Debian GNU/Linux (под WSL)
| № | Директория | Описание задачи |
|---|---|---|
| 1 | lab01-expression-evaluation | Вычисление выражения. Реализация формулы Y = (2A³ - 4A²)/B² с использованием целочисленной и FPU-арифметики. |
| 2 | lab02-conditional-branching | Условные ветвления. Поиск наименьшего из трёх чисел и его замена, если их сумма удовлетворяет условию. |
| 3 | lab03-array-fixed-points | Косвенная адресация. Фильтрация массива: копирование элементов, у которых значение совпадает с индексом (A[i] == i). |
| 4 | lab04-bitwise-pair-swap | Поразрядная обработка. Смена мест соседних пар битов в 64-битном числе с помощью битовых масок и сдвигов. |
| 5 | lab05-byte-progression-check | Анализ байтов числа. Определение, составляют ли 8 байтов 64-битного числа арифметическую прогрессию. |
Проект содержит корневой Makefile для удобного управления всеми работами.
# Собрать все лабораторные работы
make all
# Собрать конкретную лабораторную работу (например, третью)
make lab03
# Очистить все скомпилированные файлы во всех директориях
make cleanДля сборки и запуска отдельной работы вы также можете перейти в её директорию и использовать локальный Makefile.
Этот код опубликован в образовательных целях как часть моего портфолио. Если вы студент и изучаете похожий курс, вы можете использовать его для понимания и разбора материала, но не должны копировать и сдавать как свою собственную работу. Уважайте академическую честность.
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.
