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

Последнее обновление: 01.08.2023

Среда разработки XCode позволяет упростить разработку на ассемблере ARM. Рассмотрим создание и запуск программы на ассемблере ARM64 в XCode.

Прежде всего создадим в XCode новый проект.

создание первого проекта для ассемблера ARM64 в среде XCode

В списке шаблонов проектов выберем шаблон Command Line Tool

создание первого проекта Command Line Tool для ассемблера ARM64 в среде XCode

На следующем шаге укажем для нашего проекта какое-либо имя, например, HelloAsm, и в качестве языка выберем C:

первый проект на ассемблере ARM64 в среде XCode

XCode по умолчанию создает следующий проект, где имеется один файл main.c с шаблонным кодом на языке C:

ассемблер ARM64 в среде XCode

Если бы мы использовали в программе какое-нибудь взаимодействие между С и ассемблером, то в принципе мы могли бы еще как-то использовать файл main.c. Но конкретно в данном случае он нам не нужен, и мы можем его удалить. И добавим в проект новый файл:

добавление нового файла на ассемблере ARM64 в среде XCode

Для этого в окне добавления нового файла в самом низу выберем шаблон Assembly File. И далее дадим ему какое-нибудь имя, например hello

добавление нового файла Assembly ARM64 в среде XCode

В добавленном файле определим следующий код:

//
// METANIT.COM. Программа на ассемблере для Mac OS Silicon, которая
// выводит на консоль строку "Hello METANIT.COM!"
//

.global _main        // Устанавливаем точку входа в программу для компоновщика
.align 2            // Для MacOS требуется выравнивание в 4 байта

// _main - точка входа в программу
_main:
    mov    X0, #1        // значение 1 представляет стандартный поток вывода (консоль)
    adr    X1, message  // передаем адрес строки для вывода на консоль
    mov    X2, #19     // размер строки в байтах
    mov    X16, #4   // номер системного вызова Unix для записи в поток (на консоль)
    svc    #0x80        // вызываем системную функцию с номером 4

// выход из программы
    mov     X0, #0        // устанавливаем код возврата
    mov     X16, #1        // системный вызов 1 завершает программу
    svc     #0x80        // вызываем системную функцию с номером 1

message: .ascii  "Hello METANIT.COM!\n"

По сути здесь вся та же самая программа, что рассматривалась в прошлой теме и которая выводила строку на консоль, только сама программа теперь проецируется на метку _main.

Для запуска программы нажмем на черную стрелку над структурой проекта. И под исходным кодом отобразится окно консольного вывода, которое отобразит нашу строку.

Первая программа на ассемблере ARM64 в среде XCode
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850