Зарегистрироваться
Восстановить пароль
FAQ по входу

Пирогов В.Ю. Введение в программирование на языке ассемблера GAS в операционной системе Linux

  • Файл формата pdf
  • размером 3,07 МБ
  • Добавлен пользователем
  • Описание отредактировано
Пирогов В.Ю. Введение в программирование на языке ассемблера GAS в операционной системе Linux
Учебное пособие для студентов. — Шадринск: Шадринский государственный педагогический университет (ШГПУ), 2022. — 291 с. — ISBN 978-5-87818-642-1.
Учебное пособие посвящено основам программирования на языке ассемблера GAS (GNU assembler) в операционных системах Linux. В нем рассматривается система команд для платформы x86-64, типовые структуры программ. Значительная часть пособия посвящена элементам системного программирования в Linux на ассемблере: управления файловой системой, динамическая память, интегрирование с языками высокого уровня, многозадачное программирование.
Пособие рассчитано на студентов высших учебных заведений, обучающихся по инженерным специальностям, связанным с разработкой программного обеспечения.
Введение.
Ассемблер. Начало.

Как работает компьютер.
Машинный язык.
Ассемблеры.
Ассемблер TASM.
Ассемблер MASM.
Ассемблер FASM.
Ассемблер NASM.
Ассемблер YASM.
Ассемблер RosAsm.
Ассемблер GAS.

Первые программы для Linux на GNU Assembler.
Пишем первую программу Hello, world!
Системы счисления.
Десятичная система счисления.
Двоичная система счисления.
Шестнадцатеричная система счисления.

Представление чисел в компьютере.
Беззнаковые целые числа в компьютере.
Числа со знаком в компьютере.
Вещественные числа.

Послание старых мастеров.
Основы программирования на языке ассемблера.
Архитектура x86-64 для прикладного программиста.
Операции с ячейками памяти.
Системные вызовы.
Стандартный ввод-вывод.
Строки и числа.
Стек.
Функции в ассемблере.
Функции в ассемблере. Передача параметров через стек.
Функции в ассемблере. Передача параметров в системах архитектуры x86-64.
Функции в ассемблере. Локальные переменные.
Пример программы с использованием функций.
Пример рекурсивной функции на ассемблере с использованием локальной переменной.
Команды процессора архитектуры X86-64.
Адресация памяти.
Строковые операции процессора x86-64.
Команды условных и безусловных переходов.
Условные конструкции на языке ассемблера.
Базовые арифметические операции.
Битовые и логические операции.
Команды для работы с числами с плавающей точкой.
Действия с числами с плавающей точкой.
Расширения процессоров x86-64.
Управление файлами.
Открытие файла, чтение из файла.
Запись в файл. Пример копирования.
Пример работы с текстовым файлом.
Перемещение внутри файла.
Программное изменение режимов доступа к файлам и папкам.
Удаление и переименование файлов.
Создание и удаление каталогов.
Параметры командной строки.
Пример использования параметров командной строки в простой утилите.
Программа чтения содержимого каталога.
Взаимодействие с операционной системой. Управление памятью.
Глобальная статическая память.
Стековая память.
Динамическая память.
Файлы, отображаемые в память, функция mmap.
Использование системной функции mmap для получения динамической памяти.
Библиотеки и языки высокого уровня.
Объектные модули и их объединение.
Компилирование с помощью программы gcc.
Использование стандартных библиотечных функций C и доступ к параметрам командной строки.
Создание статических библиотек.
Использование ассемблерного кода в языках высокого уровня.
Динамические библиотеки на языке ассемблера.
Использование кода на языке высокого уровня в программе на языке ассемблера.
Многозадачность.
Запуск процессов. Системная функция execve.
Создание процесса.
Ожидание конца работы дочернего процессах.
Получение строк окружения.
Взаимодействие процессов. Разделяемая память.
Взаимодействие процессов. Канал pipe.
Использование семафоров для синхронизации процессов.
Приложения.
Примеры для математического сопроцессора.
Примеры управления файлами.
Изменение прав доступа.
Список рекомендуемой и использованной литературы.
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация