What lives here

Fifty short lessons, one unbroken chain: every page ends with a link to the next one, so you can read the course start to finish without ever wondering where to click. Each lesson teaches one idea with short NASM examples, and the longer deep dives live on their own pages under Assembler:

  1. Start here: What is assembly language - then follow the chain through lesson 50.
  2. The core machine, lessons 2-14: install, syntax, first program, registers, MOV, numbers, data, flags, jumps, loops, the stack, procedures, and LEA.
  3. Memory and syscalls, lessons 15-20: sections, Linux syscalls, arithmetic, bitwise operations, arrays, and structures.
  4. The toolkit, lessons 21-30: macros, calling C, GDB, ELF, time, file IO, argv, environment, floating point, and SIMD.
  5. OS and network, lessons 31-44: interrupts, sockets, an HTTP client, output formats, advanced macros, linking, 32 vs 64 bit, the ABI, makefiles, optimization, errors, CSV, a linked list, and an HTTP server.
  6. Finish, lessons 45-50: a boot sector, two capstones (RPN calculator and hex editor), performance, modern x86 with AVX, and the hero roadmap with every lesson on one page.

Course tree

Chapter 0: Install guides ├── Install NASM on Windows 11 ├── Install NASM on Ubuntu ├── Install NASM on Rocky Linux ├── Install NASM on macOS ├── Install NASM on FreeBSD └── Assembly in Docker Chapter 1: First steps ├── 01 What is assembly language ├── 02 Install NASM and check the version ├── 03 NASM syntax basics └── 04 Your first program Chapter 2: The core machine ├── 05 Registers ├── 06 MOV and data transfer ├── 07 Number bases and operands ├── 08 Defining strings and data ├── 09 Flags and the status register ├── 10 Conditional jumps ├── 11 Loops ├── 12 The stack ├── 13 Procedures └── 14 LEA and addressing modes Chapter 3: Memory and syscalls ├── 15 Memory layout: sections ├── 16 Linux syscalls ├── 17 Arithmetic ├── 18 Bitwise operations ├── 19 Arrays └── 20 Structures Chapter 4: The programmer's toolkit ├── 21 Macros ├── 22 Calling C functions ├── 23 Debugging with GDB ├── 24 The ELF format ├── 25 Time and date syscalls ├── 26 File I/O ├── 27 Command-line arguments ├── 28 Environment variables ├── 29 Floating point (SSE) └── 30 SIMD basics Chapter 5: OS and network ├── 31 Interrupts ├── 32 Sockets ├── 33 A tiny HTTP client ├── 34 Output formats: bin, elf, elf64 ├── 35 Advanced macros and %include ├── 36 Linking object files ├── 37 32-bit vs 64-bit ├── 38 The System V ABI ├── 39 Makefiles for assembly ├── 40 Optimization basics ├── 41 Error codes and logging ├── 42 Parsing CSV ├── 43 Data structures: linked list └── 44 A tiny HTTP server Chapter 6: Capstones and finish ├── 45 Boot sector: hello in 512 bytes ├── 46 Capstone: command-line calculator ├── 47 Capstone: hex editor ├── 48 Performance: cycles and cache ├── 49 Modern x86: AVX tour └── 50 Hero roadmap: the whole course on one page Bonus: ARM assembly └── ARM assembly

How to use this course

Type every example, do not just read it. Assemble each snippet with nasm -f elf64 and link it with ld before moving on - the course assumes your hands remember lesson 4 by the time lesson 12 arrives.

The assembly rules apply from day one: operands in order (destination first), one instruction per line, and a comment on every non-obvious line.

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: