Berkas COM

Muhamad Andreyansyah
Revisi sejak 20 Februari 2024 14.16 oleh Wisoput (bicara | kontrib) (membuat artikel baru)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)

Berkas COM adalah format file biner murni yang dapat dijalankan dari Windows atau dieksekusi DOS. Berkas COM adalah salah satu nama domain tingkat atas yang dapat digunakan saat memilih nama domain. Ini biasanya mewakili entitas yang memiliki nama domain sebagai organisasi komersial. Berbeda dengan format berkas EXE, berkas COM relatif lebih kecil dan lebih cepat dibanding berkas EXE. Berbeda dengan file EXE yang sudah familiar bagi kebanyakan orang, yang memiliki header 32 bit di awal. Salah satu tujuan header adalah untuk menyimpan informasi relokasi untuk berpindah antar segmen 64 bit. Berkas COM tidak memiliki informasi ini, sehingga ukuran programnya dibatasi hingga 64 kilobit.[1]

Dalam sistem operasi VAX milik Digital Equipment Corporation (DEC) tahun 1970-an, berkas COM digunakan sebagai ekstensi nama untuk file teks yang berisi perintah untuk dikeluarkan ke sistem operasi (mirip dengan kumpulan file). Dengan diperkenalkannya CP/M (Sistem Operasi Komputer Mikro), jenis file yang umumnya dikaitkan dengan ekstensi COM diubah menjadi file yang dapat dieksekusi. Konvensi ini kemudian dibawa ke DOS. Bahkan dengan diperkenalkannya format berkas EXE yang lebih umum, berkas COM sih tersedia dan umum digunakan di DOS.[2]

Format berkas COM

Format file COM adalah format biner yang dapat dieksekusi  yang digunakan oleh Microsoft Windows atau MS-DOS. Struktur ini hanyalah sekumpulan instruksi, hal ini tidak memiliki header dan tidak berisi metadata standar. Seluruh data dan kode yang disimpan hanya dalam satu segmen, dengan ukuran biner maksimal 64 kilobit. Format berkas ini tidak akan berubah saat dijalankan ulang. Oleh karena itu, sistem operasi memuatnya pada alamat yang telah ditentukan sebelumnya.[3]

Meskipun format file sama untuk DOS dan CP/M, berkas COM tidak kompatibel antara kedua sistem operasi tersebut. Berkas DOS COM berisi instruksi x86 dan kemungkinan panggilan sistem DOS, dan file CP/M COM berisi instruksi 8080 dan panggilan sistem CP/M. Berkas COM di DOS mengatur semua register segmen x86 ke nilai yang sama dan mengarahkan register SP (stack pointer) ke offset kata terakhir yang tersedia dalam segmen 64 kilobit pertama (biasanya FFFEh), atau yang dimuat setel ke memori maksimum  yang tersedia ukuran dalam blok program. Untuk program dan tumpukan minimal 256 bit, mana saja yang lebih kecil, tumpukan dimulai pada awal segmen memori yang sesuai dan bekerja ke bawah dari sana.[3]

Contoh berkas COM

Nama domain (termasuk nama domain, zona yang di-hosting, dan data) terdiri dari serangkaian label yang dipisahkan oleh titik. Setiap label dapat berukuran hingga 63 byte. Panjang total nama domain tidak boleh melebihi 255 byte, termasuk titik.[4] Nama file boleh diakhiri dengan .COM, tetapi tidak boleh dalam format sederhana seperti yang ditunjukkan di atas. Hal ini ditunjukkan dengan angka ajaib di awal file. Misalnya, file DR DOS 6.0, COMMAND.COM sebenarnya adalah file DOS yang dapat dieksekusi, karena dua bit pertama adalah inisial MZ (4Dh 5Ah) Mark Zbikowski.

Berikut kode ASM: [3]

[BITS 16]           ;Set code generation to 16 bit mode
[ORG 0x0100]        ;Set code start address to 0100h

[SEGMEN .text]      ;Main code segment
    mov ah, 9 ; DOS print string function
    mov dx, hello
    int 21h
    ;Exit to DOS
    mov ah, 4ch
    int 21h
[SEGMENT .data]     ;Initialised data SEGMENT
hello:  db   'Hello, .COM progammer!',13,10,'$'

Referensi

  1. ^ "What is a .COM program?". www.mitsco.freeservers.com. Diakses tanggal 2024-02-20. 
  2. ^ "COM file". Wikipedia (dalam bahasa Inggris). 2024-01-06. 
  3. ^ a b c Umar, Muhammad (2021-06-29). "COM - Format File Perintah DOS". docs.fileformat.com. Diakses tanggal 2024-02-20. 
  4. ^ "Format nama domain DNS - Amazon Route 53". docs.aws.amazon.com. Diakses tanggal 2024-02-20.