Kembali ke Halaman utama

 

BAB VI

MEMBUAT PROGRAM COM

 

6.1. MODEL PROGRAM COM

Untuk membuat program .COM yang hanya menggunakan 1 segment, bisa anda buat dengan model program seperti gambar 6.1. Bentuk yang digunakan disini adalah bentuk program yang dianjurkan(Ideal). Dipilihnya bentuk program ideal dalam buku ini dikarenakan pertimbangan dari berbagai keunggulan bentuk program ideal ini seperti, prosesnya lebih cepat dan lebih mudah digunakan oleh berbagai bahasa tingkat tinggi yang terkenal(Turbo Pascal dan C).

----------------------------------------------------------------------------------------------------------------------------

.MODEL SMALL

.CODE

ORG 100H

Label1 : JMP Label2

+-------------------------------+

| TEMPAT DATA PROGRAM |

+-------------------------------+

Label2 :

+-----------------------+

| TEMPAT PROGRAM |

+------------------------+

INT 20H

END Label1

----------------------------------------------------------------------------------------------------------------------------

Gambar 6.1. Model Program COM

 

Supaya lebih jelas bentuk dari program ideal, marilah kita telusuri lebih lanjut dari bentuk program ini.

6.1.1 .MODEL SMALL

Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang bisa digunakan adalah :

- TINY

Jika program anda hanya menggunakan 1 segment seperti program COM. Model ini disediakan khusus

untuk program COM.

- SMALL

Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB.

- MEDIUM

Jika data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan bisa lebih dari 64 KB.

- COMPACT

Jika data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64 KB.

- LARGE

Jika data dan code yang dipakai oleh program bisa lebih dari 64 KB.

- HUGE

Jika data, code maupun array yang digunakan bisa lebih dari 64 KB.

Mungkin ada yang bertanya-tanya mengapa pada program COM yang dibuat digunakan model SMALL dan bukannya TINY ? Hal ini disebabkan karena banyak dari compiler bahasa tingkat tinggi yang tidak bisa berkomunikasi dengan model TINY, sehingga kita menggunakan model SMALL sebagai pemecahannya.

6.1.2 .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.

6.1.3. 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.

6.1.4. JMP

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

JUMP Tujuan .

Dimana tujuannya dapat berupa label seperti yang digunakan pada bagan diatas. Mengenai perintah JUMP ini akan kita bahas lebih lanjut nantinya.

Perintah JUMP yang digunakan pada bagan diatas dimaksudkan agar melewati tempat data program, karena jika tidak ada perintah JUMP ini maka data program akan ikut dieksekusi sehingga kemungkinan besar akan menyebabkan program anda menjadi Hang.

6.1.5. INT 20h

Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi dengan syntax:

NT NoInt

Interupsi 20h berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada Dos. Pada program COM cara ini bukanlah satu-satunya tetapi cara inilah yang paling efektif untuk digunakan. Bila anda lupa untuk mengakhiri sebuah program maka program anda tidak akan tahu kapan harus selesai, hal ini akan menyebabkan komputer menjadi hang.

 


BAB 7

MENCETAK HURUF

7.1. MENCETAK HURUF

Bila dihasilkan interupsi 21h apa yang akan dikerjakan oleh komputer ?. Jawabnya, ada banyak sekali kemungkinan. Pada saat terjadi interupsi 21h maka pertama-tama yang dilakukan komputer adalah melihat isi atau nilai apa yang terdapat pada register AH. Misalkan bila nilai AH adalah 2 maka komputer akan mencetak sebuah karakter, berdasarkan kode ASCII yang terdapat pada register DL. Bila nilai pada register AH bukanlah 2, pada saat dilakukan interupsi 21h maka yang dikerjakaan oleh komputer akan lain lagi.

Dengan demikian kita bisa mencetak sebuah karakter yang diinginkan dengan meletakkan angka 2 pada register AH dan meletakkan kode ASCII dari karakter yang ingin dicetak pada register DL sebelum menghasilkan interupsi 21h.

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

; PROGRAM : A0.ASM ;

; FUNGSI : MENCETAK KARATER ;

; 'A' DENGAN INT 21 ;

;==========================S’to=;

 .MODEL SMALL

.CODE

ORG 100h

Proses :

MOV AH,02h ; Nilai servis ntuk mencetak karakter

MOV DL,'A' ; DL = Karakter ASCII yang akan dicetak

INT 21h ; Cetak karakter !!

 INT 20h ; Selesai ! kembali ke DOS

END Proses

Program 7.1. Mencetak sebuah karakter

 

Setelah program 7.1. anda ketik compile-lah dengan menggunakan TASM.EXE dengan perintah :

C:\>tasm a0

Turbo Assembler Version 2.0 Copyright (c) 1988, 1990

Borland International

Assembling file: a0.ASM

Error messages: None

Warning messages: None

Passes: 1

Remaining memory: 306k

 C:\>dir a0.*

Volume in drive C is S’to

Directory of C:\

 A0 ASM 506 08-14-94 3:56p

A0 OBJ 179 08-14-94 11:24p

2 file(s) 685 bytes

1,267,200 bytes free

 

 

 

 

 

Ke Halaman sebelumnya
Ke Halaman sebelumnya
Ke Halaman berikutnya
Ke Halaman berikutnya
Ke Halaman sebelumnya
Ke Halaman berikutnya