Interface (Perangkat Lunak) - Program Int 21H Service 09H (Gambar 37)
1.Tujuan [kembali]
- Memahami penggunaan EMU 8086
- Mengetahui program 21H Service 09H
2. Alat dan Bahan [kembali]
Software EMU 8086
EMU8086 adalah sebuah perangkat lunak emulator untuk prosesor Intel 8086, yang merupakan salah satu prosesor pertama dari keluarga x86. Emulator ini digunakan untuk mempelajari dan menjalankan program yang ditulis dalam bahasa assembly untuk prosesor 8086. Dengan menggunakan EMU8086, pengguna dapat menulis, mengompilasi, dan menjalankan kode assembly di lingkungan yang mensimulasikan arsitektur 8086 tanpa memerlukan perangkat keras asli.
3. Dasar Teori [kembali]
MENCETAK SEBUAH KALIMAT
Menggunakan fasilitas Int 21h dengan service 09h. Sebelumnya dipelajari dulu tentang variabel.
Ada 2 jenis variabel, yaitu :
a. Variabel yang Dapat Dimodifikasi Isinya Variabel yang memakan tempat pada memory, yaitu;
- DB (Define Byte), mendefinisikan variabel per byte.
- DW (Define Word), mendefinisikan variabel per word (2 byte).
- DD (Define Double Word), mendefinisikan variabel per 2 word.
Tata penulisan: Label (DB/DW/DD) [Isi Variabel]
Contoh:
Satu db ‘ satu variabel$'
Dua db 12ABh
Tiga db 75h
b. Variabel yang Tidak Dapat Dimodifikasi Isinya Tidak memakan memori pada komputer, jenis variabel ini hanya dapat dipakai dalam Assambler menggunakan Compiler dengan memakai equ.
Contoh:
Satu equ 2470h
Dua equ 2442h
Syarat menggunakan Int 21 hexa service 09 hexa ini adalah :
- AH=09H
- DS= segment variabel tempat menampung kata yang akan dicetak
- DX= offset-nya dan
- kata-kata yang dicetak tersebut harus diakhiri dengan tanda Dollar '$'.
Contoh program menggunakan Int 21 hexa service 09 hexa ditunjukkan pada gambar 37.
Hal yang perlu diperhatikan dalam membuat program seperti ini, adalah:
- Pointer program (IP) diharap jangan melewati daerah data karena bila melewati data akan terjadi kesalahan proses yang dapat menyebabkan terjadinya hanging.
- Untuk itu, arahkanlah kerja program menggunakan lompatan ke arah setelah data, dalam program label 'MULAI".
- Angka 13,10 pada akhir setiap baris data merupakan instruksi untuk ganti baris meletakkan kursor ke sebelah kolom 0 dari layar sesuai dengan fungsi kode ASCII masing-masing.
4. Percobaan [kembali]
;PROGRAM MENCETAK SEBUAH KALIMAT
JMP mulai ;Melakukan lompatan ke arah lokasi memory dengan label mulai
;Disini data dimulai
KATA db 'Kata yang dicetak',13,10 ;Variabel KATA digunakan untuk
mencetak kata & 13,10 untuk
pindah ke baris baru setelah
string ini dicetak
db 'dengan interupt 21h service 09h',13,10
db '$' ;Penanda akhir string
;Programnya
mulai:
MOV DX,OFFSET KATA ;Mengisi register DX dengan OFFSET
DATA yaitu dengan variabel KATA
MOV AH,09H ;Mengisi AH dengan service 09H
INT 21H ;Mencetak string
MOV AH,4CH ;Mengisi AH dengan 4CH
Program assembly yang ditunjukkan pada gambar berfungsi untuk menampilkan teks di layar menggunakan interrupt INT 21h dengan servis 09h. Program dimulai dengan lompatan ke label 'mulai'
, melewati bagian data yang mendeklarasikan string teks yang akan ditampilkan. Pada bagian data, string pertama 'Kata yang dicetak'
diikuti oleh karakter ASCII '13, 10'
, yang merupakan kombinasi carriage return (CR) dan line feed (LF) untuk membuat baris baru, kemudian dilanjutkan dengan string kedua 'dengan Interrupt 21H service 09H'
dan diakhiri dengan karakter $
sebagai penanda akhir string.
Eksekusi program dimulai dari label 'mulai'
, di mana register 'DX'
diisi dengan alamat memori dari string 'KATA'
. Kemudian, register 'AH'
diisi dengan nilai '09H'
, yang menandakan pemanggilan servis 09h untuk menampilkan string di layar. Ketika interrupt 'INT 21H'
dipanggil, sistem operasi DOS akan mulai menampilkan karakter dari alamat yang ditunjukkan oleh 'DX'
, dan akan terus menampilkan karakter satu per satu hingga menemukan karakter $
. Setelah string ditampilkan, program melanjutkan dengan mengisi register AH
dengan nilai 4CH
, yang merupakan kode untuk mengakhiri program.
5. Download File [kembali]
[menuju awal]
Komentar
Posting Komentar