Selasa, 30 Juni 2009

Assembler : Memulai Assembler

TEXT EDITOR

Untuk menuliskan source file untuk program assembly bisa anda gunakan berbagai editor, misalkan SideKick, WordStar dan Word Perfect. Source file yang diketikkan harus berupa file ASCII, file ini bisa anda hasilkan melalui WordStar dengan file 'NON DOCUMEN', atau dengan SideKick. Untuk meyakinkan bahwa source file yang anda buat adalah file ASCII, bisa anda coba ketikkan perintah Type pada A>. Bila file yang terlihat dengan perintah type sama persis dengan yang anda ketikkan pada editor, tanpa tambahan karakter-karakter yang acak, maka file tersebut adalah file ASCII. Source file untuk assembly harus berektensi .ASM.

COMPILER

Source file ASCII yang telah anda ketikkan perlu dicompile kebentuk file object dengan extensi .OBJ, dari file object inilah nantinya dapat dijadikan kebentuk file .EXE atau .COM.

Untuk mengcompile source file, misalnya file COBA.ASM menjadi file object dengan extensi .OBJ bisa anda gunakan file TASM.EXE dengan mengetikkan:

C:\>tasm coba

Turbo Assembler Version 2.0 Copyright (c) 1988,

1990 Borland International

Assembling file: coba.ASM

Error messages: None

Warning messages: None

Passes: 1

Remaining memory: 307k

C:\>dir coba.*

Volume in drive C is S’to

Directory of C:\

COBA OBJ 128 08-12-94 10:42p

COBA ASM 128 08-12-94 10:41p

2 file(s) 246 bytes

1,085,952 bytes free

LINGKING

File object yang telah terbentuk dengan TASM, belum dapat dieksekusi secara langsung. Untuk membuat file object ke bentuk file yang dapat dieksekusi(ektensi .COM atau .EXE) bisa anda gunakan file TLINK.EXE. Bila source program yang anda buat dalam bentuk EXE maka untuk membentuk file dengan ektensi EXE bisa anda ketikkan :

C:\>tlink coba

Turbo Link Version 3.0 Copyright (c) 1987,

1990 Borland International

Bila source program yang dibuat adalah file COM, maka bisa anda ketikkan:

C:\>tlink/t coba

Turbo Link Version 3.0 Copyright (c) 1987,

1990 Borland International

PERBEDAAN PROGRAM COM DAN EXE

Program dengan ektensi COM dan EXE mempunya berbagai perbedaan yang menyolok, antara lain :

PROGRAM COM : - Lebih pendek dari file EXE

  • Lebih cepat dibanding file EXE
  • Hanya dapat menggunakan 1 segmen
  • Ukuran file maksimum 64 KB (ukuran satu segment)
  • sulit untuk mengakses data atau procedure yang terletak pada segment yang lain.

  • 100h byte pertama merupakan PSP(Program Segment Prefix) dari program tersebut.

  • Bisa dibuat dengan DEBUG

PROGRAM EXE : - Lebih panjang dari file COM

  • Lebih lambat dibanding file COM
  • Bisa menggunakan lebih dari 1 segmen
  • Ukuran file tak terbatas sesuai dengan ukuran memory.
  • mudah mengakses data atau procedure pada segment yang lain.
  • Tidak bisa dibuat dengan DEBUG

BENTUK ANGKA

Assembler mengizinkan penggunaan beberapa bentuk angka , yaitu :

1. DESIMAL

Untuk menuliskan angka dalam bentuk desimal, bisa digunakan tanda D' pada akhir angka tersebut atau bisa juga tidak diberi tanda sama sekali, contoh : 298D atau 298 saja.

2. BINER

Untuk menuliskan angka dalam bentuk biner(0..1), harus ditambahkan tanda 'B' pada akhir angka tersebut, contoh : 01100111B.

3. HEXADESIMAL

Untuk menuliskan angka dalam bentuk hexadesimal(0..9,A..F), harus

ditambahkan tanda 'H' pada akhir angka tersebut. Perlu diperhatikan bahwa bila angka pertama dari hexa berupa karakter(A..F) maka angka nol harus ditambahkan didepannya. Bila hal ini tidak dilakukan, assembler akan menganggapnya sebagai suatu label, bukannya sebagai nilai hexa. Contoh penulisan yang benar: 0A12H, 2A02H.

4. KARAKTER

Penulisan karakter atau string diapit oleh tanda petik dua (") atau

tanda petik satu('), Contoh: ' Ini adalah karakter '.

LABEL

Label bisa anda definisikan dengan ketentuan akhir dari nama label tersebut harus berupa tanda titik dua (:). Pemberian nama label bisa digunakan:

- Huruf : A..Z (Huruf besar dan kecil tidak dibedakan)

- Angka : 0..9

- Karakter khusus : @ . _ $

Nama pada label tidak boleh terdapat spasi dan didahului oleh angka, contoh dari penulisan label yang benar: mulai: MOV CX,7. Nama label terpanjang yang dapat dikenali oleh assembler adalah 31 karakter.

KOMENTAR

Untuk memberikan komentar pada source file digunakan tanda ';'. Apapun yang dtuliskan dibelakang tanda ';' akan dianggap sebagai komentar, Contoh :

mulai: MOV BX,7 ; berikan nilai 7 pada BX

PERINTAH MOV

Perintah MOV digunakan untuk mengcopy nilai atau angka menuju suatu register,variabel atau memory. Adapun syntax untuk perintah MOV ini adalah :

MOV Tujuan,Asal

Sebagai contohnya : MOV AL,9 ; masukkan nilai 9 pada AL.

MOV AH,AL ; nilai AL=9 dan AH=9

MOV AX,9 ; AX=AH+AL hingga AH=0 dan AL:=9

Pada baris pertama(MOV AL,9), kita memberikan nilai 9 pada register AL. Kemudian pada baris kedua(MOV AH,AL) kita mengcopykan nilai register AL untuk AH. Jadi setelah operasi ini register AL akan tetap bernilai 9, dan register AH akan sama nilainya dengan AL atau 9. Pada baris ketiga(MOV AX,9), kita memberikan register AX nilai 9. Karena AX terdiri atas AH dan AL, maka register AH akan bernilai 0, sedangkan AL akan bernilai 9.

Perintah MOV akan mengcopykan nilai pada sumber untuk dimasukan ke Tujuan, nilai sumber tidaklah berubah. Inilah sebabnya MOV(E) akan kita terjemahkan disini dengan mengcopy, dan bukannya memindahkan.

PERINTAH INT

Didalam pemrograman assambler, kita akan banyak sekali menggunakan interupsi untuk membantu kita dalam mengerjakan suatu pekerjaan. Untuk menghasilkan suatu interupsi digunakan perintah INT dengan syntax:

INT NoInt

Dengan NoInt adalah nomor interupsi yang ingin dihasilkan. Sebagai contohnya bila kita ingin menghasilkan interupsi 21h, bisa dituliskan dengan:

INT 21h, maka interupsi 21h akan segera terjadi.

Tidak ada komentar:

Poskan Komentar