Добрый день на моем канале Old Programmer. Эта статья является одним из разделов канала. В ней будут помещаться ссылки на параграфы моей книги по языку ассемблера. Вообще все статьи по ассемблеру моего канала можно разделить на две части: статьи до того, как я начал писать книгу по ассемблеру и статьи - параграфы книги. Старый раздел по ассемблеру остается и по-прежнему будет пополняться, а здесь только параграфы книги, которые я пишу и правлю прямо сейчас и, которые я буду писать, еще как минимум месяца три.
Книга пишется в LibreOffice. По написанию параграфа я делаю его копию на канале. Но на этом работа не заканчивается и текст параграфов еще какое-то время будет перерабатываться и меняться. Так что не удивляйтесь если встретите еще сыроватый текст. Он потом будет доработан. А можете написать об ошибках и я с удовольствием воспользуюсь вашими замечаниями.
- Список разделов канала Old Programmer, канала о программировании и программистах
Мой новый канал, добро пожаловать
Ассемблер для Linux
"Я люблю сидеть низко — с низкого не так опасно падать."
Глава 1. Ассемблер GAS. Начало
- Ассемблер для Linux (материалы книги). Введение
- Ассемблер для Linux (материалы книги). Параграф 1.1.
- Ассемблер для Linux (материалы книги). Параграф 1.2
- Ассемблеры платформы x86. Не большой обзор. Параграф 1.3
- Ассемблер для Linux (Первые программы для Linux на GNU Assembler). Параграф 1.4.
- Ассемблер для Linux (материалы книги). Для начала Hello, world! Параграф 1.5.
- Язык ассемблера. Системы счисления. Параграф 1.6
- Об ассемблере. Представление чисел в компьютере. Параграф 1.7
- Завещание старых мастеров. Ассемблер. Параграф 1.8
Глава 2. Основы программирования на языке ассемблера
- Ассемблер для Linux. Архитектура x86-64 для прикладного программиста. Параграф 2.1.
- GNU Assembler для Linux. Операции с ячейками памяти. Параграф 2.2.
- Ассемблер для Linux. Системные вызовы. Параграф 2.3.
- Ассемблер для Linux. Стандартный ввод-вывод. Параграф 2.4
- Числа и строки. Ассемблер. Параграф 2.5.
- Стек. Ассемблер GAS. Linux. Параграф 2.6.
- Функции в ассемблере. Параграф 2.7.
- Функции в ассемблере. Передача параметров через стек. Параграф 2.8.
- Функции в ассемблере. Передача параметров через регистры в 64-битовых системах. Параграф 2.9.
- Функции в ассемблере x86-64. Локальные переменные. Параграф 2.10.
- Функции в ассемблере x86-64. Пример полнофункциональной программа. Параграф 2.11.
- Функции в ассемблере x86-64. Локальные переменные. Пример рекурсивной функции. Параграф 2.12.
Глава 3. Команды процессора архитектуры x86-64
Данная глава посвящена командам процессора x86-64. Мы не планировали сделать справочник команд. В нашу задачу входило показать все разнообразие множества инструкций процессора и примеры их использования.
- Ассемблер GAS. Адресация x86-64. Параграф 3.1
- Ассемблер для Linux. Строковые операции. Параграф 3.2
- Ассемблер x86-64 GAS. Условные конструкции Параграф 3.3
- GNU assembler. Условные конструкции. Параграф 3.4.
- Ассемблер GAS, x86-64 Linux. Стандартные арифметические команды. Параграф 3.5
- Ассемблер GAS, x86-64. Битовые и логические операции (книга) Параграф 3.6
- Ассемблер GAS, x86-64. Команды для работы с числами с плавающей точкой (книга) Параграф 3.7
- Ассемблер GAS, x86-64. Примеры с числами с плавающей точкой (книга) Параграф 3.8
- Ассемблер x86-64, GAS. Расширения процессора (книга). Параграф 3.9
Глава 4. Взаимодействие с операционной системой. Управление файлами
Данная глава посвящена различным аспектам взаимодействия программы на языке ассемблера и операционной системы. Естественно интерфейсом такого взаимодействия являются системные вызовы, с принципами вызова которых мы уже знакомы.
- Ассемблер x86-64, GAS. Открытие файла, чтение из файла (книга) Параграф 4.1
- Ассемблер x86-64, GAS. Запись в файл, копирование (книга). Параграф 4.2
- Ассемблер GAS (x86-64). Текстовые файлы (книга). Параграф 4.3
- Ассемблер GAS (x86-64). Перемещение внутри файла (книга). Параграф 4.4.
- Ассемблер GAS , x86-64, Linux. Программное изменение режимов доступа к файлам и папкам (книга) Параграф 4.5
- Ассемблер для Linux. Удаление и переименование файлов (книга) Параграф 4.6
- Ассемблер для Linux. Создание и удаление каталогов (книга). Параграф 4.7
- Ассемблер для Linux. Параметры командной строки (книга) Параграф 4.8
- Ассемблер для Linux. Пример с параметром в командной строке (книга) Параграф 4.9
- Ассемблер для Linux (GAS). Программа чтения содержимого каталога (книга) Параграф 4.10
Глава 5. Взаимодействие с операционной системой. Управление памятью
В главе рассматриваются технологии и приемы управления памятью на языке ассемблера. Возможности, с помощью использования системных функции, выделение динамической памяти
- Программирование на языке ассемблера в Linux (GAS). Статическая глобальная память (книга) Параграф 5.1
- Программирование на ассемблере GAS (Linux). Стековая память. (книга) Параграф 5.2
- Программирование на GAS, Linux x86-64. Выделение динамической памяти (книга) Параграф 5.3
- Программирование на ассемблере GAS (Linux 64). Файлы, отображаемые в память, функция mmap (книга) Параграф 5.4
- Программирование на GAS в Linux x86-64. Использование функции mmap для динамического выделения памяти (книга) Параграф 5.5
Глава 6. Библиотеки и языки высокого уровня
В главе будут рассмотрены вопросы многомодульного программирования на ассемблере GAS. Объединение объектных модулей. Создание статических и динамических библиотек. Интегрирование языка ассемблера с языками высокого уровня.
- Программирование на GAS в Linux x86-64. Объектные модули и их объединение(книга) Параграф 6.1
- Программирование на языке ассемблера в Linux 64. Компилирование с помощью программы gcc (книга) Параграф 6.2
- Ассемблер GAS. Использование стандартных библиотечных функций C и доступ к параметрам командной строки (книга) Параграф 6.3
- Программирование на ассемблере GAS в Linux x86-64. Создание статических библиотек (книга) Параграф 6.4
- Программирование на ассемблере Ассемблер GAS в Linux x86-64. Использование ассемблерного кода в языках высокого уровня (книга) Параграф 6.5
- Программирование на ассемблере GAS в Linux x86-64. Создание динамических библиотек (книга) Параграф 6.6
- Программирование на ассемблере GAS. Использование кода на высокоуровневых языках в программе на языке ассемблера (книга) Параграф 6.7
Глава 7. Многозадачность
Глава посвящена многозадачности в операционных системах Linux при использовании при при написании программ ассемблера GAS.
- Программирование на ассемблере GAS Linux x86-64. Запуск процессов (книга) Параграф 7.1
- Программирование на ассемблере GAS Linux x86-64. Создание процессов, функция fork (книга) Параграф 7.2
- Программирование на GNU assembler Linux x86-64. Ожидание конца работы дочернего процесса, wait (книга) Параграф 7.3
- Программирование на GNU ассемблере Linux x86-64. Получение списка строк окружения процесса (книга) Параграф 7.4
- Программирование на ассемблере в Linux. Взаимодействие процессов. Разделяемая память (книга) Параграф 7.5
- Программирование на ассемблере в Linux. Использование pipe для взаимодействия процессов (книга) Параграф 7.6
- Программирование на ассемблере в Linux. Семафоры (книга) Параграф 7.7
Приложения
- Ассемблер GAS , x86-64. Приложение 1 (книга)
- Ассемблер GAS , x86-64. Приложение 2 (книга)
- Ассемблер GAS , x86-64. Приложение 3 (книга)
До свиданья, пишите комментарии, подписывайтесь на мой канал Old Programmer.
Основы языка C. Оператор goto