Assembly
Full course · 21 lessonsAssembly language provides direct control over CPU instructions, memory, and registers. Essential for understanding computer architecture, reverse engineering, embedded systems, and performance-critical code optimization.
Getting Started with Assembly
Registers, syscalls, and hello world in NASM.
Registers and Data Sizes
General-purpose, sizes, and moves.
Memory Addressing
Effective addresses and addressing modes.
Arithmetic Instructions
add, sub, imul, and idiv.
Logical and Bit Operations
and, or, xor, shifts.
Control Flow
cmp, jumps, and loops.
The Stack
push, pop, and calling conventions.
SysV Calling Convention
Function arguments and System V ABI.
Data Directives
db, dw, dd, dq, resb, equ.
String Operations
String instructions and length.
Arrays and Indexing
Index arithmetic and iteration.
Input/Output
Read and write with syscalls.
Floating Point
SSE and scalar float ops.
Syscalls and Interrupts
Linux syscall interface.
File Operations
Open, read, write, close files.
Bit Manipulation
popcnt, bsf, and efficient tricks.
Debugging Assembly
GDB, breakpoints, and single-stepping.
Performance Optimization
Pipeline, alignment, and SIMD.
Interfacing with C
Call C from assembly and vice versa.
Shellcode Basics
Position-independent code.
Ecosystem and Next Steps
NASM vs GAS, ARM, and tools.

