Pages

Selasa, 06 Maret 2012

## Pengenalan Bahasa Rakitan (1) ##

           Bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman komputer, mikroprosesor, pengendali mikro, dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis arsitektur komputer tertentu. Dengan demikian, portabilitas bahasa rakitan tidak dapat menandingi bahasa-bahasa lainnya yang merupakan bahasa pemrograman tingkat tinggi. Namun demikian, bahasa rakitan memungkinkan programmer memanfaatkan secara penuh kemampuan suatu perangkat keras tertentu yang biasanya tidak dapat ataupun terbatas bila dibuat dengan menggunakan bahasa pemrograman tingkat tinggi.
            Pada bahasa rakitan, programmer umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit yang digunakan untuk menerjemahkan kode dalam bahasa rakitan tersebut ke dalam kode mesin untuk perangkat keras tertentu. Sebuah perintah dalam bahasa rakitan biasanya akan diterjemahkan menjadi sebuah instruksi mnemonic dalam kode mesin, berbeda halnya dengan kompiler pada bahasa pemrograman tingkat tinggi yang menerjemahkan sebuah perintah menjadi sejumlah instruksi dalam kode mesin.
        

Representasi kode mesin

        Bahasa rakitan menerjemahkan sebuah instruksi rakitan menjadi instruksi mesin, umumnya mekanisme penerjemahan ini bersifat 1-1, karenanya dapat disebutkan pula bahwa setiap instruksi dalam bahasa rakitan merupakan representasi dari instruksi kode mesin.
         Sebagai contoh, berikut adalah instruksi yang digunakan pada prosesor x86 untuk memindahkan nilai 97 sebesar 8-bit ke dalam register prosesor AL. Kode biner atas instruksi pemindahan adalah 10110 diikuti dengan 3-bit pengenal atas register yang akan digunakan. Pengenal atas register AL dalam hal ini adalah 000. Kemudian, nilai 97 dalam kode biner adalah 01100001, sehingga kode mesin yang digunakan untuk memindahkannya adalah sebagai berikut:
10110000 01100001
      Kode biner ini dapat diubah agar lebih mudah dibaca manusia dengan mengkonversikannya dalam bilangan heksadesimal sebagai berikut:
B0 61
       Pada instruksi diatas, B0 berarti: 'Pindahkan nilai berikut ke register AL', dan 61 adalah representasi bilangan heksadesimal untuk nilai 01100001, atau 97 dalam bilangan desimal. Bahasa rakitan untuk prosesor Intel menyediakan simbol mnemonic MOV (yang merupakan singkatan dari move) untuk instruksi serupa sehingga kode mesin sebelumnya dapat ditulis dalam bahasa rakitan sebagai berikut:
MOV AL, 61h       ; Isi register AL dengan nilai 97 (61h)
 
Berikut adalah beberapa Interrupt yang digunakan:

Daftar BIOS Interrupt
Int. #
Kegunaan
Input
Output
10 H
Menentukan Posisi Kursor
AH = 02 H
BH = No. Hal Layar
DH = Baris Kursor
DL = Kolom Kursor
Kursor di posisi yang baru
10 H
Menghapus layar Ke atas
AH = 06 H
AL = Banyak baris yang dihapus (0 = semua)
BH = Warna Layar
CH = Baris batas atas
CL = Kolom batas atas
DH = Baris batas bawah
DL = Kolom batas bawah.
Layar akan Terhapus
10 H
Menulis karakter dengan warna di posisi kursor
AH = 09 H
AL = Kode karakter ASCII
BH = No. Hal Layar
BL = Warna karakter
CX = Banyak yang akan dicetak
Karakter tertulis di layar
10H
Mencetak 1 baris string
dengan atribut
AH = 13 H
AL = 0
BH = halaman layar
BL = atribut
DH = baris
DL = kolom
CX = Panjang kalimat
ES:BP = alamat string
String tercetak dengan lokasi dan warna

Daftar DOS Interrupt

Int. #
Kegunaan
Input
Output
21 H
Input 1 Karakter (Echo)
AH = 01 H
AL = Input tercetak di layar
21 H
Input 1 karakter tanpa echo mengecek CTRL-C
AH = 08 H
AL = Kode ASCII hasil Input
21 H
Mencetak 1 baris string dan harus diakhiri dengan karakter $
AH = 09 H
DS:DX = alamat string
String tercetak di layar



  • Ikhwan.Cyber


  • 0 komentar:

    Posting Komentar