Skip to content

Assembly Architecture

Mastering x86-64 and ARM64 assembly language from the ground up.

Chapters in this path

01

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.

Read Chapter
02

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.

Read Chapter
03

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.

Read Chapter
04

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.

Read Chapter
05

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.

Read Chapter
06

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.

Read Chapter
07

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.

Read Chapter
08

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.

Read Chapter
09

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.

Read Chapter
10

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.

Read Chapter