Приветствую вас на моём канале.
Данное видео больше информативное. Ни какой работы с кодом здесь не будет. Весь код будет в последующих видео.
Я начинаю курс по ассемберу ARM, но... разбираясь с ARM я заметил сложность с поиском необходимой информации. Хотя она есть. И потому, я решил сопровождать две версии кода, одна для процессоров x86/x86_64, другая для ARM/ARM64.
То что я занялся данным курсом не означает, что я забросил ZenGL. Это означает, что мне полезно будет узнать больше об данном ассемблере, а так же вам, если вам это будет интересно.
Для работы с ARM нам потребуется какое-нибудь устройство на ARM, это может быть: телефон, планшет, Raspberry, у кого-то возможно компьютер на этом процессоре. Если этого нет, то на данное время есть интернет ресурсы, с онлайн-эмуляторами, эмуляторы Android, Raspberry и ОС на ARM.
Я хотел сказать, что я буду использовать эмулятор ARM - Debian 11. Куда я так же установил FPC/Lazarus. Nasm, Yasm. Всё для тренировок. Но!
Оказалось, что есть ещё более простой путь для тестирования работы ARM/ARM64 - это эмулятор в командной строке “qemu-arm“ и “qemu-aarch64“. А вот их найти как раз сложнее.
Если для вас непросто найти их, то надо скачать исходники Qemu и скомпилировать их. Есть эти файлы уже в скомпилированном виде? Я не знаю.
У меня есть эти два файла для Linux. - пароль 456123.
“Уроки“ включены в архив.
Эти файлы должны быть так же в Android-SDK. Потому, вероятнее всего вы их там найдёте, я про “qemu-arm“ и “qemu-aarch64“.
Но если у вас есть достаточно быстро работающее устройство ARM/ARM64, то лучше использовать их! Или у вас достаточно хорошая машина, которая сможет достаточно неплохо сэмулировать эту архитектуру?!
********************************************************************************
Для работы с архитектурой ARM, я буду использовать Fasm или Gas, потому что пока только у них видел кросс-компиляцию под другие архитектуры. И FPC/Lazarus. У меня установлен кросс-компилятор. Если вы будете использовать какой-либо ещё кросс-компилятор, то всё в ваших руках. Если вы решили повторить за мной и использовать FPC/Lazarus, то вам желательно работать с Linux.
binutils
Установка FPC/Lazarus, смтрите видео, если не разобрались сами:
********************************************************************************
Прежде чем смотреть следующие видео, вы должны быть немного подготовлены и иметь представление о регистрах, инструкциях и многом прочем на данном процессоре ARM/ARM64. Основную информацию, я скину под видео.
Теперь немного об ассемблерах. Я буду работать с ARM64 и надо знать, что между ARM и ARM64 есть отличия. Но основные отличия - это то, что регистры, что были на процессорах ARM это регистры r0-r15, они были изменены на процессорах ARM64 и стали регистрами x0-x30, и в то же время 32-х разрядные регистры ARM64 это w0-w30 (по количеству регистров могу ошибаться).
Что двигало разработчиками архитектуры? Зачем они это сделали? Почему просто не расширили изначальные регистры? Ответов на эти вопросы, вернее всего мы не получим.
Но это и не страшно, главно об этом помнить.
Так же есть ещё отличия, насколько они значительны, мы (или вы сами) сможем выяснить в процессе тренировок.
Так что до встречи в новых видео. Ну а вам подготовится перед их просмотром. Потому что я не буду пробегаться по основам, мы будем, в основном, только практиковаться.
Сайты с информацией по ассемблерам:
Главная?4??4??4??4??4??4??4??4??4??4??1?_ARM=
- случайно нашёл
для Linux x86_64 - но для информации полезно:
Полезно почитать книгу “Рудольф Марек. Ассемблер на примерах.“ Раздел “Программирование в Linux“.
Видео, где я собирал виртуальную машину Debian-ARM. Для графической оболочки у вас должно быть ядро Linux не ниже 5-го. Тогда можно установить полноценную эмулируемую систему ARM|ARM64.
Видео, где дают общую информацию и рассказывают как пользоваться онлайн-ARM-компилятором (эмулятором). Советую новичкам посмотреть и потренироваться.
Связь: M12Mirrel@
Так же можно связаться со мной на форумах Lazarus.
Поддержать можно через сбер:
2202200951985520