program meenampilkan sebuah karakter S dengan Program Assembly 8086

 

;program meenampilkan sebuah karakter S

dosseg

.model small

.stack 100h

.data

.code

main proc

mov dl, 'S'

mov ah,2

int 21h

mov ah, 4ch

int 21h



main endp

end main


Berikut adalah penjelasan rinci dari kode Assembly 8086 yang digunakan untuk menampilkan karakter 'S' ke layar menggunakan interupsi DOS.


Struktur Program Assembly 8086

Program Assembly 8086 umumnya terdiri dari beberapa bagian utama:

  1. Direktif Segmentasi (dosseg.model.stack.data.code)

  2. Prosedur Utama (main proc dan main endp)

  3. Instruksi Assembly (movint)

  4. Pengakhiran Program (end main)


Penjelasan Per Baris Kode

1. Direktif Segmentasi


dosseg
  • dosseg: Mengatur segmentasi memori sesuai konvensi DOS (Data, Code, Stack diurutkan secara otomatis).


.model small
  • .model small: Mendefinisikan model memori yang digunakan.

    • small berarti program menggunakan 1 segmen data (64KB) dan 1 segmen kode (64KB).


.stack 100h
  • .stack 100h: Mendefinisikan ukuran stack sebesar 256 byte (100h dalam heksadesimal).


.data
  • .data: Bagian ini digunakan untuk mendeklarasikan variabel.

    • Pada program ini, tidak ada variabel yang dideklarasikan.


.code
  • .code: Menandai awal segmen kode (tempat instruksi program disimpan).


2. Prosedur Utama (main proc)


main proc
  • main proc: Mendefinisikan awal prosedur utama (main).


3. Instruksi untuk Menampilkan Karakter


mov dl, 'S'
  • mov dl, 'S': Mengisi register DL dengan karakter 'S' (kode ASCII 53h).

    • DL digunakan karena interupsi DOS 21h dengan fungsi 02h mengharapkan karakter berada di DL.


mov ah, 2
  • mov ah, 2: Mengisi register AH dengan nilai 2, yang merupakan fungsi DOS untuk menampilkan karakter.

    • int 21h akan memanggil fungsi ini.


int 21h
  • int 21h: Memanggil interupsi DOS (Interrupt 21h) untuk menjalankan fungsi yang ditentukan di AH.

    • Karena AH = 2, maka DOS akan menampilkan karakter dari DL ke layar.


4. Instruksi untuk Mengakhiri Program


mov ah, 4ch
  • mov ah, 4ch: Mengisi AH dengan 4Ch, yang merupakan fungsi DOS untuk mengakhiri program.


int 21h
  • int 21h: Memanggil interupsi DOS lagi, tetapi kali ini untuk keluar dari program dan mengembalikan kontrol ke sistem operasi.


5. Penutup Prosedur dan Program


main endp
  • main endp: Menandai akhir dari prosedur main.


end main
  • end main: Memberi tahu assembler bahwa program berakhir di label main.


Ringkasan Alur Program

  1. Program dimulai dengan mengatur segmentasi memori (dosseg.model.stack).

  2. Memasuki segmen kode (.code) dan prosedur utama (main proc).

  3. Menyimpan karakter 'S' ke DL.

  4. Memanggil fungsi DOS (AH=2) untuk mencetak karakter dari DL.

  5. Memanggil fungsi DOS (AH=4Ch) untuk mengakhiri program.

  6. Program berakhir (end main).


Hasil Eksekusi Program

  • Program akan menampilkan karakter 'S' di layar.

  • Setelah itu, program segera berakhir dan kembali ke sistem operasi.


Catatan Tambahan

  • Register yang Digunakan:

    • DL: Menyimpan karakter yang akan ditampilkan.

    • AH: Menentukan fungsi DOS yang dipanggil (02h untuk cetak karakter, 4Ch untuk exit).

  • Interupsi 21h: Merupakan interupsi DOS untuk berbagai operasi I/O dan sistem.

  • Jika ingin menampilkan string (bukan karakter tunggal), diperlukan fungsi 09h dengan string diakhiri '$'.


Komentar

Postingan populer dari blog ini

Instalasi Board ESP32 di Arduino IDE