x86 Assembly: Write Code the CPU Actually Executes
Assembly language is the closest you can get to bare metal without writing binary by hand. Every instruction maps directly to a CPU operation — no runtime, no garbage collector, no abstraction hiding what the hardware does. This track covers x86 Assembly from first principles through kernel-level programming, giving you the foundation that makes everything from compilers to exploit development legible.
What You Will Learn
You will start with registers, memory layout, and data types, then move through basic instructions and control flow, stack management, and procedure calling conventions. From there the track covers interfacing Assembly with C and C++ code, issuing system calls, handling interrupts and exceptions, and working with floating-point units and SIMD instructions. Advanced courses address debugging and reverse engineering, memory protection mechanisms, virtualization, kernel-level driver programming, and low-level performance optimization including exploitation techniques.
The Learning Path
Twelve courses span A2 through C2. The free introductory course establishes x86 syntax and mental model. B1 and B2 courses build the practical core — registers, control flow, the stack, and procedures. The track then shifts to C1 depth with five courses covering C/C++ interop, system calls, interrupts, SIMD, and reverse engineering. Two C2 courses on Memory Protection and Virtualization and Kernel-Level Programming and Drivers precede the final course on Performance Optimization and Exploitation, which ties together everything from cache behavior to security-relevant low-level techniques.
How It Works
Each course is split into short, focused lessons you complete in the built-in code editor with real-time feedback. An AI tutor is available when you get stuck on an instruction encoding or a segfault you cannot explain.