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

Kirim email ke