Skip to content

Сборка моих университетских лабораторных работ по Ассемблеру x86-64 (GAS) для Linux. Собирает базовые концепции от простой арифметики до поразрядных операций.

License

Notifications You must be signed in to change notification settings

n1xsi/assembly-x64-labs

Repository files navigation

Assembly Labs Preview

Лабораторные работы по программированию на GAS Ассемблере x86-64

Assembler Neovim Debian WSL License

📍 О репозитории

Этот репозиторий представляет собой сборник моих лабораторных работ, выполненных в рамках курса «Программирование на языках Ассемблера». Проект служит как практическое портфолио, демонстрирующее навыки низкоуровневого программирования.

🎯 Цели проекта:

  • Изучение архитектуры 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)
  • Окружение: 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.

🎓🙌 Academic Integrity

Этот код опубликован в образовательных целях как часть моего портфолио. Если вы студент и изучаете похожий курс, вы можете использовать его для понимания и разбора материала, но не должны копировать и сдавать как свою собственную работу. Уважайте академическую честность.

📄 Лицензия

Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.

About

Сборка моих университетских лабораторных работ по Ассемблеру x86-64 (GAS) для Linux. Собирает базовые концепции от простой арифметики до поразрядных операций.

Topics

Resources

License

Stars

Watchers

Forks