Projects

Learn Low-Level Assembly

Bilingual learning notes that connect assembly syntax, memory, registers, calling conventions, and Linux system calls.

Annotated x86 stack-frame layout from the assembly learning notes

Learn Low-Level Assembly is a set of learning notes, written primarily in Indonesian with English technical vocabulary, that makes low-level concepts easier to revisit. It supports later work in program reversing, return-oriented programming, and ELF exploitation by documenting the fundamentals those workflows rely on.

Memory layout

The notes map text, data, heap, stack, and kernel space, then compare x86 and x86-64 stack frames, parameter passing, saved frame pointers, and return addresses.

Registers and addresses

  • General-purpose, index, and pointer registers across 32-bit and 64-bit views
  • Hexadecimal memory addresses, base addresses, offsets, and byte ordering
  • Big-endian and little-endian representations

Linux system calls and addressing

NASM examples cover open, read, write, and exit, alongside syscall-number and argument registers. A second sequence explains immediate, register, direct, indirect, and relative addressing modes.

View source repository