Chapter 16 Further Reading: ARM64 Architecture
1. ARM Architecture Reference Manual for A-profile Architecture (Arm DDI 0487) ARM Ltd. — free download from developer.arm.com
The definitive reference for AArch64. Chapter C2 covers the instruction set in full. Chapter D1 covers PSTATE and condition flags. Chapter G covers memory model. Required reading if you're working professionally with ARM64. The PDF runs to 12,000+ pages; use the search function.
Download: https://developer.arm.com/documentation/ddi0487/latest
2. Procedure Call Standard for the Arm 64-bit Architecture (AAPCS64) ARM Ltd. (IHI0055) — free download from developer.arm.com
The official specification for the ARM64 calling convention. Covers register usage, stack alignment, argument passing, struct layout, and exception handling. Essential for writing assembly that interoperates with C code.
Download: https://developer.arm.com/documentation/ihi0055/latest
3. "ARM Assembly Language" by William Hohl and Christopher Hinds Pearson, 2nd edition — textbook
Covers ARMv7 (32-bit) primarily but with AArch64 appendix. Good for understanding the ARM design philosophy across generations. Useful supplementary reading for understanding ARM32 context before AArch64.
4. "Computer Organization and Design: ARM Edition" by Patterson and Hennessy Morgan Kaufmann, 2016
The classic Patterson and Hennessy textbook adapted for ARM. Covers the full computer architecture stack from logic gates through assembly to the memory hierarchy, using ARM as the teaching ISA. Excellent for building foundational understanding.
5. Compiler Explorer (godbolt.org) — ARM64 output Web tool — free
Set the compiler to GCC ARM64 (aarch64-linux-gnu-gcc) and compare the output of C code to ARM64 assembly across optimization levels. Invaluable for understanding how the compiler uses the register file and instruction set. The "diff" view lets you compare -O0 vs. -O2 output directly.
URL: https://godbolt.org
6. QEMU Documentation — aarch64 Machine Types QEMU project — free
Documents the ARM CPU models available in QEMU, their features, and how to set up a complete AArch64 Linux virtual machine. The cortex-a57 and cortex-a72 models are appropriate for most learning purposes.
URL: https://www.qemu.org/docs/master/system/target-arm.html
7. "Azeria Labs ARM Assembly Basics" — Tutorial Series Azeria Labs — free web tutorial
A hands-on ARM assembly tutorial series (ARM32 and AArch64) aimed at security researchers. Excellent for complementary learning with practical examples. The ARM64 sections cover the register file, instruction set, and common programming patterns.
URL: https://azeria-labs.com/writing-arm-assembly-part-1/
8. "The ARM Cortex-A Series Programmer's Guide for ARMv8-A" ARM Ltd. (DEN0024A) — free download
A gentler introduction than the architecture reference manual. Covers the programmer's model, memory model, exception levels, and key instructions with examples. A good starting point before diving into the full ARM ARM.
Download: https://developer.arm.com/documentation/den0024/latest
9. "Why RISC-V?" by Andrew Waterman and Krste Asanović RISC-V Foundation whitepaper
Explains the motivations behind RISC-V design and why existing ISAs (including ARM64) were considered insufficient for an open, clean-slate design. Reading this makes ARM64's design choices more visible by contrast.
URL: https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf (Chapter 1)
10. "Computer Architecture: A Quantitative Approach" by Hennessy and Patterson (6th Ed.) Morgan Kaufmann
Chapter 1 covers performance analysis. Appendix A covers instruction set principles including RISC vs. CISC analysis. Chapter 3 covers instruction-level parallelism, which explains why fixed-width instructions matter for modern pipelines.