1. Memahami penggunaan EMU 8086
2. Mengetahui program 21H Service 09H
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;
a.
DB (Define Byte), mendefinisikan variabel per
byte.
b.
DW (Define Word), mendefinisikan variabel per
word (2 byte).
c.
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 :
a.
AH=09H
b.
DS= segment variabel tempat menampung kata yang
akan dicetak
c.
DX= offset-nya dan
d. 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:
a. Pointer program (IP) diharap jangan melewati
daerah data karena bila melewati data akan terjadi kesalahan proses yang dapat
menyebabkan terjadinya hanging.
b. Untuk itu, arahkanlah kerja program menggunakan
lompatan ke arah setelah data, dalam program label 'MULAI".
c.
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.
6. Download File [kembali]
Komentar
Posting Komentar