Руководство по программированию на ассемблера для архитектуры ARM64

Последнее обновление: 05.08.2023
  1. Глава 1. Введение в ассемблер ARM64

    1. Архитектура ARM64

    2. Первая программа для Linux ARM64 и Android на Windows

    3. Первая программа для Linux ARM64 и Android на Linux x86-64

    4. Первая программа на Linux ARM64

    5. Первая программа для Linux ARM64 и Android на MacOS

    6. Представление данных

  2. Глава 2. Основы ассемблера ARM64

    1. Регистры процессора

    2. Инструкции. Реверс-инжиниринг программы

    3. Проверка значения регистра

    4. Инструкция MOV и копирование значений

    5. Операции сдвига

    6. Загрузка констант в регистры

    7. Копирование разрядов

    8. Расширение регистров знаком и нулем

    9. Сложение. Инструкция ADD

    10. Вычитание. Инструкция SUB

    11. Логические операторы

    12. Умножение. Инструкция MUL

    13. Деление. Инструкции SDIV и UDIV

    14. Инструкции аккумулятора MADD и MSUB

  3. Глава 3. Работа с данными и памятью

    1. Типы данных

    2. Символы

    3. Инструкция LDR. Загрузка данных

    4. Выравнивание данных

    5. Инструкция STR. Сохранение данных

    6. Арифметика адресов

    7. Директива .EQU. Определение констант

    8. Получение адреса

    9. Типы адресации. Адресация со смещением

    10. Преиндексная и постиндексная адресация

    11. Адресация относительно регистра PC

    12. STRB и манипуляции с символами в строке

    13. Загрузка и сохранение двух регистров. LDP и STP

    14. Стек

  4. Глава 4. Управление состоянием и переходы

    1. Флаги состояния

    2. Сложение и установка флагов. Инструкция ADDS

    3. Вычитание с установкой флагов. Инструкция SUBS

    4. Сложение со знаком переноса. ADC

    5. Вычитание с учетом флага переноса и SBC

    6. Безусловный и условный переходы

    7. Сравнение и инструкции CMP, CMN и TST

    8. Инструкции условного выбора

    9. Инструкция CCMP. Объединение условий

    10. Сравнение с переходом. Инструкции CBZ, CBNZ, TBZ и TBNZ

    11. Ветвление программы и условные конструкции

    12. Проверка сложных условий

    13. Имитация конструкции switch..case

    14. Циклы

    15. Практика. Программа перевода строки в верхний регистр

    16. Практика. Печать регистра на консоль

  5. Глава 5. Функции

    1. Определение и вызов функции

    2. Вложенные вызовы функций

    3. Передача параметров в функцию

    4. Возвращение результата из функции

    5. Выделение функций в отдельные файлы

    6. Вставка кода и директива include

    7. Макросы

    8. Фрейм стека

    9. Передача в функцию адресов

  6. Глава 6. Системные вызовы Linux

    1. Системные вызовы Linux. Чтение и запись файла

    2. Список системных вызовов Linux для архитектуры ARM64

  7. Глава 7. Взаимодействие с кодом C

    1. Вызов функций языка C в коде ассемблера

    2. Соглашения ARM ABI

    3. Вызов функций ассемблера из программы на C

    4. Внедрение кода ассемблера в код С

  8. Глава 8. FPU, числа с плавающей точкой и сопроцессор Neon

    1. Определение и загрузка чисел с плавающей точкой

    2. Арифметические операции с числами с плавающей точкой

    3. Преобразование чисел с плавающей точкой

    4. Сравнение чисел с плавающей точкой

    5. Сопроцессор Neon и параллельные вычисления

    6. Практика. Распараллеливание перевода строки в верхний регистр

  9. Глава 9. Разные примеры

    1. Умножение матриц

    2. Вычисление расстояния между точками

    3. Умножение матриц с помощью сопроцессора Neon

    4. Вычисление длины 4D-вектора

  10. Глава 10. Формат ELF-файла

    1. Заголовок файла ELF

    2. Заголовки программы

    3. Заголовки разделов файла ELF

  11. Глава 11. Создание программ для MacOS ARM64

    1. Первая программа для MacOS ARM64

    2. Первая программа в XCode

    3. Особенности разработки для MacOS ARM64. Загрузка данных

    4. Системные вызовы в MacOS. Консольный ввод и вывод

    5. Отладка программы для MacOS

  12. Глава 12. Создание программ для Windows ARM64

    1. Первая программа для Windows ARM64

    2. Определение данных в ассемблере armasm64

    3. Взаимодействие с WinAPI

    4. Системные вызовы Windows

    5. Взаимодействие с кодом C/C++

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850