Assembly Architecture
Mastering x86-64 and ARM64 assembly language from the ground up.
Chapters in this path
Assembly Hello World: A Cross-Platform Syscall Deep Dive
Master assembly syscalls across Linux & macOS for x86-64 and ARM64 architectures. This comprehensive assembly syscall tutorial provides working code examples for write and exit syscalls.
Assembly Hello World: Windows Edition (x64 & ARM64)
Learn Windows assembly programming for x64 and ARM64. Build Hello World using both Kernel32 APIs and direct syscalls with MASM (ml64.exe) and armasm64.exe toolchains.
x86-64 & ARM64 Calling Conventions Demystified
Learn x86-64 and ARM64 calling conventions across Linux, macOS, and Windows. Master parameter passing, stack frames, and register preservation with hands-on assembly examples.
Stack Frames & Function Prologues Demystified: x86-64 & ARM64 Guide
Master stack frame prologue and epilogue patterns across x86-64 and ARM64 architectures. Learn how function calls work at the assembly level on Linux, macOS, and Windows.
Windows Assembly Toolchain: The Native MASM Guide
Set up the Windows native assembly toolchain with Visual Studio. Learn ml64.exe (MASM) for x64 and armasm64.exe for ARM64, plus key syntax differences from GNU tools.
Executable File Formats: ELF, PE, and Mach-O Explained
How does the operating system know how to take that file and turn it into a running process? The answer lies in the Executable File Format.
Process Loading & Creation: The Life of a Binary
Curious about process loading? We trace the journey from disk to execution, covering the OS loader, ASLR, and dynamic linking on Linux, macOS, and Windows.
Dynamic Linking & Relocations: How the GOT and PLT Work
How does code call functions that aren't there yet? We dive deep into the Global Offset Table (GOT), Procedure Linkage Table (PLT), and the lazy binding dance.
System Calls Demystified: 4 Essential Facts About the User-Kernel Bridge
How does your program actually *do* anything? We dive deep into the `syscall` instruction, kernel mode transitions, and the differences between Linux, macOS, and Windows system calls.
Build a Debugger from Scratch: Ultimate 3 OS Guide (Part 8)
Understanding the bridge between your code and the kernel is the final key to demystifying how software works. Up to this point in my Assembly Series, you've mastered how to load a process, how calling conventions manage functions, how memory is laid out, and finally, how to talk directly to the hardware via system calls.