Belajar Assembly Language (x86-64 & ARM64) dari dasar hingga production-grade: pre-requisites skill & setup environment, sejarah latar belakang & mengapa membutuhkannya, arsitektur CPU & konsep dasar, instalasi & hello world syscall, sintaks Intel vs AT&T, register data types & addressing modes, control flow jump & conditional, aritmetika logika & bitwise, stack & subroutine, ABI System V x86-64 & Windows x64, syscalls & interaksi OS Linux, data structures array string struct, SSE/AVX & floating point, macro struct & conditional assembly NASM, inline assembly dalam C GCC, ARM64 assembly aarch64, debugging & reverse engineering gdb objdump, security exploits mitigations & shellcode, optimasi kinerja & profiling, interop linking C & glibc, NASM 3.02 & toolchain terbaru, kernel bootloader & embedded, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menulis baris assembly pertama, kalian perlu menguasai dasar pemrograman C atau Python, konsep binary/hex, CPU, RAM, dan stack. Di episode ini kalian juga menyiapkan toolchain lengkap: NASM 3.02 atau GAS, linker ld/gcc, debugger gdb, serta objdump/readelf di Linux x86-64, dan memverifikasi semuanya siap dipakai sepanjang series.

Menelusuri lahirnya assembly di era 1950-an sebagai pengganti machine code yang mustahil dibaca manusia, alasan setiap arsitektur CPU memiliki Instruction Set Architecture (ISA) sendiri, serta mengapa di tahun 2026 kalian masih perlu memahaminya: debugging, reverse engineering, sistem operasi, embedded, performa kritis, dan exploit development.

Membedah arsitektur CPU modern dari sudut pandang assembly: perbandingan x86-64 (CISC) vs ARM64 (RISC) vs RISC-V, peran register dan Program Counter (RIP/PC), cara kerja stack (push/pop, RSP), arsitektur Von Neumann di mana data dan instruksi tinggal satu memori, serta konsep endianness yang menentukan urutan byte di RAM.

Momen pertama menulis kode assembly: memastikan NASM terinstall, menyusun program Hello World Linux x86-64 paling sederhana memakai syscall write(1, msg, len) dan exit(0), lalu assemble dengan nasm -f elf64 dan link dengan ld, hingga memverifikasi eksekusi dan belajar membaca error assembler.

Dua dialek utama assembly x86: sintaks Intel yang dipakai NASM (mov dest, src, dengan size byte/word/dword/qword) dan sintaks AT&T yang dipakai GAS (mov src, dest, dengan suffix b/w/l/q dan prefix % untuk register, $ untuk immediate), beserta cara menerjemahkan antara keduanya dengan percaya diri.

Peta lengkap register x86-64: general-purpose rax-r15 beserta sub-register eax/ax/al/ah, RFLAGS dan flag ZF CF SF OF, serta instruction pointer RIP. Di episode ini juga dibedah lima addressing mode (immediate, register, direct, indirect, indexed) dan penyimpanan little-endian yang menentukan cara data diletakkan di memori.

Mengendalikan alur eksekusi CPU: jmp tanpa syarat, perbandingan dengan cmp lalu jump kondisional je/jne/jg/jl untuk integer signed dan ja/jb untuk unsigned, loop dan jrcxz, serta call/ret yang menjadi dasar pemanggilan fungsi di episode 8.

Menguasai operasi matematika di level register: add/sub, mul/imul yang menghitung 128-bit, div/idiv dengan pembagian signed yang rumit, dan flag overflow CF/OF. Lalu logika & bitwise: and/or/xor/not, shift shl/shr/sar, rotate rol/ror, hingga trik shift sebagai perkalian dan pembagian cepat ala compiler.

Memahami stack x86-64 secara penuh: push/pop, manipulasi rsp, dan stack frame dengan rbp (prologue/epilogue). Kemudian subroutine: call yang mendorong alamat kembali, ret yang mem-pop-nya, serta variabel lokal yang hidup di atas stack — fondasi ABI di episode 9 dan buffer overflow di episode 17.

Aturan main agar fungsi assembly bisa dipanggil dari C dan sebaliknya: System V AMD64 ABI dengan argumen di rdi/rsi/rdx/rcx/r8/r9 lalu stack, hasil di rax, register caller-saved vs callee-saved, red zone, dan alignment 16-byte. Termasuk perbandingan dengan ABI Windows x64 yang memakai rcx/rdx/r8/r9 dan shadow space.
