language

Arm Assembly

Arm assembly targets the Arm architecture, ~87%-owned by SoftBank Group (Arm Holdings plc, Nasdaq: ARM, IPO Sept 2023); over 350 billion Arm-based chips have shipped cumulatively as of early 2026 and Arm cores run ~99% of smartphones. Current silicon implements Armv9-A, which mandates AArch64 support at every exception level while 32-bit AArch32 (A32/T32) is only optional at EL0 โ€” a hard split from Armv8-A's dual-state design. The AAPCS64 calling convention passes the first 8 arguments in X0-X7, returns via X0, uses X8 for indirect struct returns, X19-X28 as callee-saved, and X29/X30 as frame pointer/link register. Official toolchain: Arm GNU Toolchain 15.2.Rel1 (released Dec 2025, based on GCC 15.2), targeting arm-none-eabi for bare metal or aarch64-linux-gnu for Linux userspace. Current version/status: Armv9-A architecture (current profile); Arm GNU Toolchain 15.2.Rel1 (Dec 2025, GCC 15.2-based). License: Proprietary ISA specification (licensed to silicon vendors); reference toolchain (GNU Assembler/GCC) is GPL, LLVM's integrated assembler is Apache 2.0 with LLVM exceptions. Maintained by Arm Holdings plc (Nasdaq: ARM), ~87% owned by SoftBank Group as of 2026 (down from ~90.6% at IPO in Sept 2023); architecture spec authored by Arm, GNU toolchain packaged by Arm in partnership with the GNU project.

Also known as: ARM Assembly, ARM ASM, AArch64 Assembly, AArch32 Assembly, Armv8 Assembly
๐ŸงŠWhy learn Arm Assembly?

Write AArch64 assembly when reverse-engineering iOS/Android binaries, bringing up bare-metal firmware on Cortex-M/A silicon, or hand-tuning NEON/SVE kernels where the compiler leaves performance on the table โ€” nothing else gives register-level control on the chip running nearly every phone on Earth. Skip it for general embedded application logic: C plus intrinsics gets 95% of the speedup at a tenth of the debugging pain, so reach for that instead. Arm's own architecture split is the honest weak point โ€” AArch32 and AArch64 are separate, non-interoperable instruction sets, so the skill you build on one doesn't transfer cleanly to the other despite sharing the "ARM assembly" name.

Compare Arm Assembly

Learning Resources

Related Tools

Alternatives to Arm Assembly