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.

Selamat datang di series Belajar Assembly! Series ini akan membawa kalian menguasai bahasa pemrograman paling dekat dengan mesin — Assembly Language untuk x86-64 dan ARM64 — dari instalasi toolchain, register dan instruksi, ABI & calling convention, syscall, hingga optimasi, security, dan interop dengan C. Total ada 23 episode yang tersusun dalam lima fase, dari fondasi konsep sampai refleksi akhir.
Tapi sebelum menulis mov rax, 1 yang pertama, ada skill dasar dan perangkat software yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena assembly beroperasi satu lapis di atas transistor: kalian berbicara langsung dengan register, stack, dan memori. Kalau konsep pointer di C atau cara stack bekerja belum jelas, kode assembly kalian akan terasa seperti teka-teki tanpa petunjuk.
Episode 0 ini adalah peta jalan: kita akan memastikan skill dasar terpenuhi, menginstall toolchain assembly, dan memverifikasi environment untuk pertama kali. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
Kalian wajib nyaman dengan konsep variabel, fungsi, perulangan, dan — yang paling penting — pointer bila memakai C. Pointer adalah jembatan alami menuju assembly: *ptr di C diterjemahkan hampir harfiah menjadi mov dengan operan memori di assembly. Jika kalian berasal dari Python, kuasai dulu konsep memori lewat modul ctypes atau struct — bayangkan setiap variabel sebagai alamat yang berisi nilai, bukan sekadar nama.
Assembly bekerja dengan angka mentah. Kalian harus paham bahwa 255 desimal adalah 0xff hex dan 0b11111111 biner, serta mampu menghitung konversi dasar:
printf '%x\n' 255 # ff
printf '%d\n' 0x41 # 65 (ASCII 'A')
printf '%o\n' 8 # 10 (octal)Nanti di episode 5 kalian akan membaca register dalam hex dengan gdb. Tanpa intuisi hex, membaca 0x7ffc8a5f... hanya akan jadi deretan karakter asing.
Kalian perlu memahami tiga fondasi arsitektur komputer:
Series ini memakai Linux x86-64 sebagai target utama (dianjurkan), karena toolchain-nya lengkap dan gratis. ARM64 akan dibahas terpisah di episode 15.
NASM (Netwide Assembler) adalah assembler yang memakai sintaks Intel — sintaks yang paling banyak dipakai untuk menulis assembly x86 secara manual. Versi stabil terbaru saat penulisan adalah 3.02 (rilis 29 Juni 2026). Install sesuai distro kalian:
sudo apt install nasm # Debian/Ubuntu
sudo dnf install nasm # RHEL/Fedora
brew install nasm # macOS (dengan Homebrew)GAS (as) adalah assembler bawaan GNU toolchain yang memakai sintaks AT&T. Ia otomatis terpasang bersama gcc, jadi tidak perlu install terpisah:
which as
gcc --version | head -1Perangkat berikut wajib ada karena akan dipakai sejak episode 3 sampai episode 21:
sudo apt install binutils gdb strace # binutils: ld, objdump, readelfld — linker, menggabungkan object file menjadi executable.gdb — debugger: breakpoint, eksekusi per instruksi, inspeksi register dan memori.objdump dan readelf — membaca struktur dan instruksi binary.strace — melacak syscall yang dipanggil program.Jalankan verifikasi menyeluruh untuk memastikan semuanya siap:
nasm -v
as --version | head -1
ld --version | head -1
gcc --version | head -1
gdb --version | head -1
objdump --version | head -1Output nasm -v harus menampilkan NASM 2.16.x atau lebih baru — idealnya 3.02. Jika versi NASM kalian terlalu tua, sebagian fitur yang dibahas di episode 20 (seperti dukungan instruksi terbaru) belum tersedia. Untuk GAS, versi apa pun dari gcc 12 ke atas sudah cukup.
Tip
Belum punya mesin Linux x86-64? Buat VM cepat dengan QEMU, atau gunakan WSL2 di Windows — keduanya menyediakan toolchain penuh nasm, as, gcc, gdb, dan binutils tanpa biaya.
Buat juga direktori lab untuk tempat bereksperimen sepanjang series:
mkdir -p ~/asm-lab/src ~/asm-lab/binNote
Seluruh contoh di series ini diuji terhadap toolchain berikut: NASM 3.02, GNU as 2.4x, gcc 13+, gdb 15+, dan Linux kernel 6.x. Distro lain boleh berbeda versi — pastikan perintah dan output intinya masih cocok.
Rangkuman yang sudah kalian siapkan di episode 0:
ld, gdb, objdump/readelf, strace.~/asm-lab/src dan ~/asm-lab/bin.nasm -v dan versi toolchain lain tampil tanpa error.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Perjalanan 22 episode ke depan akan jauh lebih lancar dengan pijakan yang kuat ini.
Inti yang harus dibawa pulang:
ld, gcc, gdb, dan binutils.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa kalian membutuhkan assembly — dari lahirnya bahasa ini di era 1950-an sebagai pengganti machine code, mengapa setiap arsitektur punya Instruction Set Architecture (ISA) sendiri, hingga peran assembly dalam debugging, reverse engineering, sistem operasi, dan exploit development. Pastikan toolchain kalian sudah siap, karena perjalanan Belajar Assembly baru saja dimulai!