Reading order, official sources only, x86-64 → ARM64. Five stages: registers and flags first, assembly practice in parallel, then the ABI, then the reference volumes, then ARM64.
Official page, free PDFs: intel.com — Intel SDM
Volume 1: Basic Architecture — read these chapters only, in order:
| Chapter | Title | Why |
|---|---|---|
| Ch 3 | Basic Execution Environment | GPRs, RIP, RFLAGS. Core of what you asked |
| Ch 4 | Data Types | — |
| Ch 6 | Procedure Calls, Interrupts, Exceptions | stack mechanics |
AMD64 Architecture Programmer’s Manual, Volume 1: Application Programming (doc #24592)
amd.com — developer guides & manuals
nasm.us/doc — Ch 2–3, then write tiny Linux programs
nasm -f elf64 x.asm && ld x.o # assemble/run
gdb → set disassembly-flavor intel
objdump -d -M intel ./a.out
gitlab.com/x86-psABIs/x86-64-ABI — build/download PDF from repo
| Doc | Role |
|---|---|
| SDM Volume 2 REFERENCE | full instruction set A–Z. Keep open while reversing |
| SDM Volume 3 REFERENCE | only when you go OS-level: Ch 2–4 (protection, paging), interrupts |
In this order:
| # | Doc | Notes |
|---|---|---|
| 1 | ARM Cortex-A Series Programmer’s Guide for ARMv8-A (DEN0024A) GUIDE developer.arm.com/documentation/den0024 |
the readable intro, ~300 pages. Ch 4 registers, Ch 5–6 A64 instruction set, Ch 9 ABI |
| 2 | Learn the Architecture — A64 ISA guide developer.arm.com/documentation/102374 |
short, modern |
| 3 | AAPCS64 github.com/ARM-software/abi-aa/releases → aapcs64.pdf |
ARM’s calling convention, = ARM’s psABI |
| 4 | ARM ARM (DDI 0487) REFERENCE developer.arm.com/documentation/ddi0487 |
12,000+ page reference. Lookup only, never linear |
cmp + why jle fires.