Загрузка страницы

Ассемблер ARM/ARM64. x86/x86_86. Введение. Подготовка.

Приветствую вас на моём канале.

Данное видео больше информативное. Ни какой работы с кодом здесь не будет. Весь код будет в последующих видео.

Я начинаю курс по ассемберу 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. https://disk.yandex.ru/d/h2VbtR26VRmMxw - пароль 456123.

Но если у вас есть достаточно быстро работающее устройство ARM/ARM64, то лучше использовать их! Или у вас достаточно хорошая машина, которая сможет достаточно неплохо сэмулировать эту архитектуру?!

********************************************************************************
Для работы с архитектурой ARM, я буду использовать Fasm или Gas, потому что пока только у них видел кросс-компиляцию под другие архитектуры. И FPC/Lazarus. У меня установлен кросс-компилятор. Если вы будете использовать какой-либо ещё кросс-компилятор, то всё в ваших руках. Если вы решили повторить за мной и использовать FPC/Lazarus, то вам желательно работать с Linux.

binutils

Установка FPC/Lazarus, смтрите видео, если не разобрались сами:
https://youtu.be/pR0QwrFiPIg
********************************************************************************
Прежде чем смотреть следующие видео, вы должны быть немного подготовлены и иметь представление о регистрах, инструкциях и многом прочем на данном процессоре ARM|ARM64. Основную информацию, я скину под видео.

Теперь немного об ассемблерах. Я буду работать с ARM64 и надо знать, что между ARM и ARM64 есть отличия. Но основные отличия - это то, что регистры, что были на процессорах ARM это регистры r0-r15, они были изменены на процессорах ARM64 и стали регистрами x0-x30, и в то же время 32-х разрядные регистры ARM64 это w0-w30 (по количеству регистров могу ошибаться).
Что двигало разработчиками архитектуры? Зачем они это сделали? Почему просто не расширили изначальные регистры? Ответов на эти вопросы, вернее всего мы не получим.
Но это и не страшно, главно об этом помнить.
Так же есть ещё отличия, насколько они значительны, мы (или вы сами) сможем выяснить в процессе тренировок.

Так что до встречи в новых видео. Ну а вам подготовится перед их просмотром. Потому что я не буду пробегаться по основам, мы будем, в основном, только практиковаться.

Сайты с информацией по ассемблерам:
https://osdev.fandom.com/ru/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F?4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F4%3F%3F1%3F_ARM=
https://modexp.wordpress.com/2018/10/30/arm64-assembly/
http://pp4s.co.uk/main/tu-trans-asm-arm.html
https://heyrick.eu/assembler/ - случайно нашёл

для Linux x86_64 - но для информации полезно:
https://zen.yandex.ru/media/id/5f04c4d28b9cee73d889add0/iazyk-assemblera-x8664-linux-putevoditel-po-resursam-kanala-old-programmer-5f6b85486d33ec4eba84b006

Полезно почитать книгу "Рудольф Марек. Ассемблер на примерах." Раздел "Программирование в Linux".

Видео, где я собирал виртуальную машину Debian-ARM. Для графической оболочки у вас должно быть ядро Linux не ниже 5-го. Тогда можно установить полноценную эмулируемую систему ARM|ARM64.

https://youtu.be/I5CqbvJt8x4
https://youtu.be/rAlbBv062i4

Видео Ассемблер ARM/ARM64. x86/x86_86. Введение. Подготовка. канала Serg Shutk
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
11 августа 2022 г. 19:49:47
00:06:42
Яндекс.Метрика