Program COM merupakan sebuah program aplikasi yang berekstension COM, misalkan COMMAND.COM. Program ini hampir sama dengan program EXE yaitu sama sama sebagai program aplikasi, adapun persamaan dan perbedaannya adalah sbb:
Program COM :
- Lebih Pendek dari file EXE
- Lebih Cepat di banding File EXE
- Hanya dapat menggunakan 1 segmen
- Ukuran file maksimum 64 KB (ukuran satu segmen)
- Sulit untuk mengakases data atau procedure yang terletak pada segmen yang lain.
- 100h byte pertama merupakan PSP (program segment prefix) dari program tsb.
- Bisa dibuat dengan DEBUG.
Berikut ini sebuah program Com yang di buka menggunakan software Disassembly
Program EXE :
- Lebih panjang dari 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
Untuk membuat program .COM yang hanya menggunakan 1 segment dapat menggunakan model program seperti berikut ini :
.model small
.code
ORG 100h
Label1 : JMP label2
+-------------------------------------+
Tempat data program
+-------------------------------------+
Label2 : +-------------------------------------+
Tempat data program
+-------------------------------------+
INT 20h
End label1
- Model Small
Tanda direktove ini digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program, adapun bentuk model-model yang bisa digunakan adalah :
o TINY
Jika program hanya menggunakan 1 segmen seperti program COM. Model ini disediakan khusus untuk program COM.
o SMALL
Jika data code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB
o MEDIUM
Jika data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan bisa lebih dari 64 KB
o COMPACT
Jika data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64 KB
o LARGE
Jika data dan code yang dipakai oleh program bisa lebih dari 64 KB
o HUGE
Jika data, code maupun array yang digunakan bisa lebih dari 64 KB
Adapun alasan membuat program COM menggunakan model SMALL dan bukannnya TINY karena banyak compiler bahasa tingkat tinggi yang tidak bisa berkomunikasi dengan model TINY, sehingga menggunakan model SMALL.
2. Code
Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa akan mulai menggunakan Code segmentnya disini. Code segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan.
3. Org 100h
Perintah ini digunakan untuk memberitahukan assembler supaya program pada saat dijalankan 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.
4. JMP
Perintah JMP digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP, adapun syntaxnya adalah :
JUMP Tujuan.
Dimana tujuannya dapat berupa label seperti yang digunakan pada bagian diatas. Perintah JUMP yang digunakan pada bagian 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 bisa Hang.
5. Int 20h
Perintah ini berfungsi untuk mengakhiri program.
0 komentar
Posting Komentar