Некоторые основные отличия между архитектурами AArch64 и x86-64:
- Происхождение: AArch64 — это 64-битное расширение архитектуры ARM, а x86-64 — это 64-битное расширение архитектуры x86. 3
- Количество регистров: в AArch64 больше регистров общего назначения, чем в x86-64. 5 В AArch64 их 31 (от 0 до 30), а в x86-64 — только 29. 5
- Синтаксис: в AArch64 имена регистров не нужно предварять символом «%», а для немедленных значений не нужны префиксы (но для ясности их можно предварять символом «#»). 5 В x86-64 для вызова косвенной памяти используются скобки. 5
- Порядок аргументов: в AArch64 для операций требуется больше аргументов, чем в x86-64. 3 Например, для операций add и udiv в AArch64 нужно 3 аргумента, а для msub — 4. 3 В x86-64 для этих операций требуется не более 2 аргументов. 3
- Хранение номера syscall: в AArch64 номер syscall хранится в r8, а в x86-64 — в rax. 3
При этом у архитектур есть и сходства, например, использование регистров для операций SIMD и с плавающей точкой, а также стека для хранения данных. 5