Kita sering dengar sebagian orang berpendapat belajar assembly tidak perlu. Alasannya, assembly merupakan pengkodean paling primitif sehingga terlalu banyak yang harus dipelajari hanya untuk mendapatkan pengertian sedikit. Untuk sekedar memunculkan pesan "Hello world" di layar saja, perlu beberapa langkah. Dibandingkan dengan Java, untuk ukuran panjang text yang sama, mungkin Java bisa merampungkan 100 sampai 1000 kali proses komputasi yang dilakukan assembly. Sehingga untuk mencapai goal komputasi yang sama, pekerjaan yang dilakukan dalam programming, menggunakan assembly ibarat jalan kaki dibanding naik kendaraan bermotor relatifnya terhadap Java. Meskipun setelah berhasil menjadi program, tentu assembly jauh lebih cepat larinya jika penyusunan logikanya tepat.
Selain keprimitifannya, assembly juga sangat tinggi ketergantungannya dengan arsitektur komputer yang kita gunakan. Jangankan beda merek, sesama Intel saja tidak ada jaminan kompatibilitas untuk versi yang berbeda. Intel 486 dan Intel Pentium pasti ada bedanya. Hal ginian menuntut assembly programmer untuk selalu belajar setiap kali ada perubahan versi.
Namun demikian, hemat saya, assembly merupakan fardlu kifayah, terutama bagi mereka yang tugasnya menjadi technical support. Kenapa? Ketika ada masalah software, kita dituntut mampu melakukan debugging. Umumnya debugger menampilkan tahapan proses dalam notasi hexadesimal. Meskipun mengaku sebagai professor doktor IT, tidak mungkin seseorang mampu mentafsir logika di balik hexadesimal jika tidak tahu assembly. Kalaupun dia mengaku demikian, pasti bohong!.
Lebih parah lagi jika yang didebug komponen OS atau program multitasking yang logikanya asinkron. Tidak mungkin ada debugger yang mampu melakukannya. Satu-satunya cara adalah membaca trace table dan memory dump. Pasti yang muncul adalah hexadesimal curah yang tak berformat. Tanpa keterampilan assembly, jelas omong kosong untuk mendebugnya.
Berikut ini beberapa topik terkait assembly saya harap mampu merangsang generasi muda untuk mempelajarinya:
- Mengenal Assembly
- Memanfaatkan Kesalahan dalam Assembly
- Systems Programming
- Systems Programming (lanjutan)
- Contoh rekayasa produk yang menggunakan Assembly
Semoga manfaat :)
Baca konten-konten menarik Kompasiana langsung dari smartphone kamu. Follow channel WhatsApp Kompasiana sekarang di sini: https://whatsapp.com/channel/0029VaYjYaL4Spk7WflFYJ2H