Langkah pertama untuk belajar assembly adalah menyadari perbedaan antara assembler dan compiler.
Assembler is not compiler! Semua perintah di assembly itu terpetakan satu-satu dengan instruksi bahasa mesin. Jadi yang harus diingat, assembly itu machine specific. Coding assembly di Intel (x86), di AVR, atau di SUN SPARC beda. Untuk di Intel sendiri (x86), sintaksis bahasa assembly terbagi dua, ada yang AT&T (kayak GNU assembler) atau Intel (MASM, NASM, TASM). Buku Kip Irvine lumayan bagus untuk pertama kali belajar. Apalagi di situ diajarkan cara coding assembly pake Visual Studio. Supaya lebih semarak lagi coba download Asm Highlighter di asmhighlighter.codeplex.com. Plugin untuk coding assembly dengan VS 2010 with syntax highlighting. Katam dari buku Kip Irvine, seharusnya sudah fasih dengan common registers (ebx, edx, esi, edi, eflags, etc), dan konsep seperti interrupt vector, stack, BIOS routine, memory mapped device, A20 gate, etc. Semua itu sebagian besar tanpa menyinggung the so called protected mode, modus native dari processor Intel sejak 80386. Kalau buku Kip Irvine udah tamat, langkah berikutnya adalah mencoba pemrograman protected mode, sebuah modus yang memungkinkan OS multitasking kayak Windows atau Linux bisa jalan. Buku yang bisa dibaca adalah manual dari Intel sebanyak 3 jilid. Jangan dihafal semua, yang penting ngerti konsepnya aja. Kegunaan dari pemahaman tentang protected mode, apresiasi Anda tentang OS meningkat. Segala sesuatu yang Anda kira (honestly, saya kira) dilakukan oleh OS ternyata dilakukan oleh CPU! - Mengetahui bagaimana interrupt terjadi di Windows. Agak berbeda dengan yang di DOS (real mode). - Mengetahui MMU (Memory Management Unit). Sebelum saya mengetahui bagaimana Intel me-manage virtual memory, saya selalu bingung tentang memory space di Windows. Dua giga pertama adalah untuk kernel dan sisanya (another 2 gigs) adalah SATU BUAH user program. Jadi kalau seluruh memory space adalah untuk kernel sama satu buah program, lalu kemana program yang lain? Bukankah Windows adalah multitasking? Dengan trik seperti sulap, program lain tetap ada di physical memory (bukan di hard disk) tapi tidak termapping di virtual address. - Mengetahui privilege level (the so called ring protection level), dengan mengunakan segment ataupun Virtual Memory. Jadi pengecekan sebuah user process tidak boleh mengakses kernel process di manage pada level hardware. - Mengetahui implementasi system call. Kalau user program tidak boleh mengeksekusi sebuah fungsi yang ada di kernel space (misal membaca file), lalu bagaimana cara user program membaca file? Jawabannya adalah call gate. User program boleh mengakses kernel space, asal harus lewat gerbang, yang tentunya ada penjaganya :) Nah, kalau konsep di atas udah mengerti, coba buat OS sederhana. Web yang bagus adalah osdev.org. Cobalah membuat sebuah program yang dapat jalan tanpa menggunakan OS. Langkah-langkah ada di site tersebut. Memang sebagian besar menggunakan binutils (gcc, gas, objdump, etc). Sekarang, untuk membuat apresiasi anda even more about CPU, coba mengerti bagaimana CPU bekerja sampai transistor-transistornya! Ga ngerti transistor ga papa, yang penting tau gerbang AND, OR, dan NOT. Bagi Anda yang trauma dengan hukum Ohm, KVL dan KCL (Kirchoff Voltage Law and Kirchoff Current Law) yang Anda pelajari saat SMU, harap diketahui bahwa rangkaian digital jauh lebih mudah untuk dipelajari. Rangkaian digital itu satu layer di atas hukum Ohm, Thevenin, dan nama nakutin lainnya, sehingga Anda tidak usah mempelajari itu semua. Believe me, nggak sulit! Salah satu momen eureka terbesar dalam hidup saya (halah), adalah membaca buku digital (waktu itu karangan Malvino). Sebelum dan sesudah membaca, terasa bedanya (sorry, another jayus statement). Di situ diajarkan cara membuat CPU yang sangat-sangat sederhana. Saya memang tidak pernah merangkainya (mengingat keterampilan tangan saya diragukan), tapi minimal saya merangkainya di alam pikiran. Semua itu coba lakukan kalau Anda adalah mahasiswa (atau pengangguran), karena kalau sudah bekerja, bisa-bisa apresiasi bos anda mengenai anda turun drastis. Selamat mencoba! regards, Dicky Arinal To unsubscribe from this group, send an email to: [email protected] Get Free 5 GB mailbox Check this http://www.mugi.or.id
