Cari Blog Ini

Rabu, 27 Oktober 2010

Sekilas Assembler

Pada komputer pertama kali dirancang, programmer hanya sebagai pernacangan komputer. Bahasa yang dipakai adalah bahasa yang paling rendah levelnya (low level language), atau yang sering kita sebut sebagai bahasa mesin.
Mengapa disebut bahasa mesin, karena instruksinya menggunakan deretan bit 0 dan 1 sebagai fungsi sebenarnya dari cara kerja komputer, dan itu pasti akan menyulitkan manusia untuk menginstruksikan data yang berbentuk deretan 0 dan 1.
Bahasa Assembler adalah bahasa mesin yang dikodekan dalam bentuk symbol yang punya makna seperti bahasa level tinggi. Bentuk simbolik ini disebut sebagai MNEMONIC, sebagai contoh perintah untuk mengisi register AH dengan nilai 2, sedangkan kode mesinnya ialah : 1011 1000 0000 0010, kalau dalam heksa desimal ditulis sebagai : B4 02. dalam Assembler, MNOMENICnya ditulis sebagai : MOV AH,02 atau mengisi registrasi AH dengan nilai 2.
Sebenarnya bahasa Assembler ini menggunakan bahasa inggris yang disingkat seperti : MOV untuk move, MUL untuk multiply, DIV untuk division, INC untuk increment, dll.
Sistem Bilangan Hexa Desimal
Bahasa mensin sebenarnya kode bahasa dalam bentuk bilangan biner. Sudah pasti kita akan kesulitan untuk menggunakan bilangan biner yang simbolnya sangat terbatas 0 dan 1. Untuk mengatasi masalah tersebut maka bilangan biner dikonversikan kedalam bilangan Heksa Desimal, yaitu system bilangan yang menggunakan 16 bilangan pokok. Bilangan heksa juga meringkas bilangan biner karena 1 digit bilangan heksa mewakili 4 digit bilangan biner.
Berikut adalah table konversi bilangan Desimal, Biner, dan Heksa Deksa Desimal
Desimal
Biner
Heksa Desimal
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Jika suatu kode Assembler INT 20 yang memiliki kode mesin AC09, maka kode sebenarnya yang dibaca mesin ialah : 1010 1100 0000 1001.
A C 0 9
Label
Label bisa didefenisikan sebagai ketentuan akhir dari nama label tersebut harus berupa tanda titik dua (:).
contohnya : - Huruf : A..Z (Huruf besar atau kecil disamakan)
- Angka : 0..9
- Karakter khusus : @ . _ $
Pemberian pada label tidak boleh ada tanda spasi dan tidak boleh didahului oleh angka. Assembler hanya membaca 31 karakter untuk pemberian nama label.
Contohnya : Mulai : MOV BX,7.
Komentar
Cara memberikan komentar pada program ialah dengan memberikan tanda titik koma (;), berarti apapun yang ditulis setelah pemberian symbol komentar tersebut dan masih dalam baris yang sama program tidak akan mengkompailnya.
Contohnya : Mulai : BX,7 ; berikan nilai 7 pada BX.
Perintah MOV
MOV berfungsi untuk mengkopi nilai atau angka menuju kesuatu registrasi, variable, dan juga memori. Cara penulisannya : MOV tujuan, asal
Contohnya : MOV AL,9 ; masukkan nilai 9
MOV AH,AL ; nilai AL = 9 dan AH dan AH = 9
MOV AX,9 ; AX=AH+AL hingga AH = 0 dan AL := 9
Makin bingung…?tenang , neh penjelasannya bro..!!
Pada baris pertama register AL diberikan nilai 9, kemudian pada baris kedua regirter AL dicopy ke register AH, maka sekarang nilai AH menjadi 9, dan pada baris ketiga register AX diberi nilai 9. AX adalah gabungan dari AH dan AL, maka register AH nilainya menjadi 0, sedangkan AL tetap bernilai 9.
Program Turbo Assembler
Compiler
Setelah anda membuat program assembler maka harus di save terlebih dahulu dengan ekstensi asm. Sebelum anda mengcompil file yang baru dibuat, terlebih dahulu file yang anda save dengan ekstensi ASM harus di buat kedalam file objek dengan ekstensi OBJ. langsung aja kita kecontohnya :
Misal ada file LATIHAN.ASM dirubah menjadi file objek dengan menggunakan file TASM.EXE dengan mengetikkan(mengcompilnya menggunakan layer command prompt) :
C:\> tasm latihan
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International
Assembling file: LATIHAN.ASM
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 443k
Linking
File objek yang dibentuk dengan TASM tersebut belum bisa di eksekusi. Agar dapat di eksekusi maka file objek tersebut di buat menjadi file dengan ekstensi COM atau EXE dengan cara menggunakan TLINK.EXE. Contoh pembuatan EXE :
C:\>TLINK LATIHAN
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
Jika ingin dibuat kedalam COM, caranya :
C:\>TLINK/T LATIHAN
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
Perbedaan program COM dengan EXE
Program COM
Program EXE
-Lebih pendek
-Lebih cepat
-Hanya dapat menggunakan 1 segmen
-Ukuran maksimumnya 64 KB (1 segmen)
-Sulit untuk mengakses data atau procedure yang terletak pada segmen lain
-100 byte pertama merupakan PSP (program Segmen Prefix) dari program tersebut
-Bisa dibuat dengan DEBUG
-Lebih panjang
-Lebih lambat
-Bisa mneggunakan lebih dari 1 segmen
-Ukuran file tidak terbatas
-Mudah mengakses data atau procedure yang terletak pada segmen lain
-Tidak bisa dibuat dengan DEBUG
Gaya Penulisan Turbo Assembler
Assembly bersifat tidak case sensitive yang berarti programmer bebas menggunakan huruf capital ataupun non capital dalam menuliskan programnya.
TITLE Nama_Program
Nama_Segment SEGMENT
ASSUME CS : Nama_Segment
ORG 100H
Label_1 : JMP Label_1
; Tempat defini label
; …..
Label_2 : ;……
; disini ditulis programnya / main program
;……..
INT 20H ; program terminate (akhir program)
Nama_Segment ENDS
END Label_1
Biar lebih jlas lagi…
Contoh program
TITLE coba ; judul program
kodeku SEGMENT ; nama segment
ASSUME CS : kodeku
ORG 100h ; alamat awal program
mulai : MOV AH,02h ; service cetak program
MOV DL,41h ; tampung symbol ASCII
INT 21h ; servis cetak karakter
INT 20h ; keluar program
kodeku ENDS ; akhir segment
END mulai ; akhir program
Hasil Eksekusi
A

0 komentar:

Posting Komentar