Anda di halaman 1dari 23

Pembuatan Program

Untuk membuat program dlm bahasa rakitan tersedia

dua option:
Debugger (Menggunakan DEBUG) Mengunakan Turbo Assembler (TASM)

Sejarah Debug
Berasal dari kata bug yang berarti kutu.
Maksudnya adalah mencari dan melacak kesalahan

dari suatu program komputer. Pada hardware dikenal istilah trouble-shoot. Istilah ini ditemukan pada tahun 1945 oleh Grace Murray Hopper. Pengolahan data pada komputer Max II macet, setelah ditelusuri oleh para teknisi, ternyata penyebabnya adalah seekor serangga (bug) yang terjepit diantara kotak-kotak relay.

DEBUG
Debug merupakan sebuah program pelaksana

(command-driven program) yang memiliki 19 interuksi. Selain memiliki kemampuan untuk melakukan debugging, intruksi debug juga mampu untuk melaksanakan perhitungan secara hexa, menciptakan file baru, mencari data tertentu, serta melihat, mengedit dan menyimpan data ke dalam memory.

DEBUG
Debug hanya mengenal dan selalu bekerja dengan

bilangan heksadesimal. Debug bekerja dengan penunjuk ke segment-segment memory menggunakan format Segment : Offset. Debug mampu menjelajah kedaerah-daerah perangkat yang paling dalam atau very low level access (baik secara software maupun hardware).

Commands dalam DEBUG


A (Assemble/Address) C (Compare) D (Dump) E (Enter/Edit) F (Fill) G (Go) H (Hex) I (Input) L (Load) M (Move)

N (Name) O (Output) P (Proceed) Q (Quit) R (Register) T (Trace) U (Unassemble) W (Write) ?

Memulai DEBUG
C:/>debug[enter]
-r[enter] Muncul tampilan sbb :
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1390 ES=1390 1390:0100 0000 SS=1390 CS=1390 IP=0100 ADD [BX+SI],AL NV UP EI PL NZ NA PO NC DS:0000=CD

Turbo Assembler (TASM)


Dalam membuat program menggunakan Turbo

Assembler diperlukan software sbb:


Editor => menulis source code (Notepad, Wordpad, dll). Compiler (TASM) => menerjemahkan source code ke

program objek (.OBJ). Linker (TLINK) => Meng-generate program objek ke executable file (.COM atau .EXE).

Pembuatan Program Assembly Menggunakan TASM


Langkah-langkahnya:
Simpan file dengan ekstensi .asm Compile => c:\>TASM coba.asm Link => c:\>TLINK coba atau c:\>TLINK/t coba

Langkah Pembuatan File Executable


Editing Proses pembuatan dengan editor

File Source (.asm)


Proses kompilasi dengan TASM File Object (.obj) Proses kompilasi dengan TLINK File Execute

.com

.exe

Perbedaan Program .Com Dan .Exe


PROGRAM COM
Lebih pendek dari file EXE Lebih cepat dibanding file EXE Hanya dapat menggunakan 1

PROGRAM EXE
Lebih panjang dari file COM Lebih lambat dibanding file

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.

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
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. Biner Untuk menuliskan angka dalam bentuk biner(0..1), harus ditambahkan tanda 'B' pada akhir angka tersebut. Contoh : 01100111B. Hexadesimal Untuk menuliskan angka dalam bentuk hexadesimal(0..9,A..F), harus ditambahkan tanda 'H' pada akhir angka tersebut. 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. 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

Tipe Data
Dalam bahasa rakitan sebuah variabel atau konstanta harus

didefinisikan terlebih dahulu. Ada beberapa instruksi untu mendefinisikan variabel atau konstanta yaitu:

DB DW DD DF DQ DT EQU

<Define Byte> 1 Byte <Define Word> 2 Byte <Define DoubleWord> 4 Byte <Define FarWords> 6 Byte <Define QuadWord> 8 Byte <Define TenBytes> 10 Byte <Equate> Konstanta

Yang perlu di ingat dalam menuliskan konstanta atau variabel

adalah penulisan variabel atau konstanta tidak boleh ada spasi tetapi cara penulisan bebas.

Tipe Data (Contoh)


.MODEL SMALL .CODE ORG 100h TData : JMP Proses A DB 4 B DB 4,4,4,2,? C DB 4 DUP(5) D DB 'HAI !!' E DW ? F DW ?,?,? G DW 10 DUP(?) H DD ? I DF ?,? J DQ 0A12h K DT 25*80 L EQU 666 M DB '123' N DB '1','2','3' O DB 49,50,51 Proses : ; ; ; ; 1 byte, nilai awal='4' ; 1*5 byte, nilai awal=4,4,4,2,? ; 1*4 byte, nilai awal='5' ; 6 byte berisi 6 karakter ; 1 word tidak diketahui isinya ; 3 word tidak diketahui isinya ; 10 word tidak diketahui isinya ; 1 DoubleWord tanpa nilai awal ; 2 FarWord tanpa nilai awal ; 1 QuadWord, nilai awal='0A12' ; 1 TenBytes, nilai awal='2000' ; Konstanta, L=666 ; String '123' ; String '123' ; String '123'

END Tdata

Membuat Program Com

Membuat Program Com


MODEL SMALL Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita. Ada enam model program yang bisa digunakan yaitu:

TINY => Program dengan model ini hanya menggunakan 1 segment (Model ini disediakankhusus untuk program berekstensi .COM). SMALL =>Program model ini menggunkan ukuran data-data dan kode kurang dari 1 segment atau 64KB. MEDIUM => Program model ini menggunakan ukuran data kurang dari 64KB namun ukuran kode bisa lebih dari 64KB. COMPACT => Program model ini menggunkan ukuran data lebih dari 64KB namun ukuran kode lebih kecil atau sama dengan 64KB LARGE => Program model ini menggunkan ukuran data dan kode lebih dari 64 KB (lebih dari 1 segment). HUGE => Program model ini menggunkan ukuran data, kode dan array lebih besar dari 64KB.

Membuat Program Com


CODE Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini. Code segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan. ORG 100h Pada program COM perintah ini akan selalu digunakan. Perintah ini digunakan untuk memberitahukan assembler supaya program pada saat dijalankan(diload ke memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS untuk mengontrol jalannya program tersebut.

Membuat Program Com


JMP Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. Adapun syntaxnya adalah:

JUMP Tujuan INT 20h


Perintah INT adalah suatu perintah untuk

menghasilkan suatu interupsi dengan syntax:

INT NoInt
Interupsi 20h berfungsi untuk mengakhiri program dan

menyerahkan kendali sepenuhnya kepada Dos

Membuat Program Exe

Membuat Program Exe


Pada program EXE harus didefinisikan tempat untuk

segment DATA, CODE dan STACK. Pada program EXE, kita tidak perlu menggunakan perintah:ORG 100h, karena program EXE bisa menempatkan dirinya pada alamat yang telah ditentukan. Pada program EXE, register segment CS dan SS diinialisasi secara otomatis, tetapi register segment DS dan ES tidaklah demikian. Register segment DS dan ES pada awalnya menunjuk pada awal program, yaitu PSP. Karenanya register DS perlu kita inialisasi secara manual agar menunjuk pada segment data melalui perintah: MOV AX,@DATA MOV DS,AX

Membuat Program Exe


Berbeda dengan program COM, yang selalu kita akhiri

dengan interupsi 20h, pada program EXE interupsi 20h tidak bisa digunakan. Pada program EXE digunakan interupsi 21h fungsi 4Ch dengan register AL berisi kode return. Interupsi 21h fungsi 4Ch ini lebih fleksibel untuk digunakan, karena selain kontrol akan dikembalikan kepada DOS, file-file yang terbuka juga akan ditutup oleh fungsi ini. Link Interrupt

Anda mungkin juga menyukai