MENCETAK KARAKTER DAN KALIMAT
MENCETAK HURUF
Bila dihasilkan interupsi 21h apa yang
akan dikerjakan oleh komputer?. Jawabnya, ada banyak sekali kemungkinan. Pada
saat terjadi interupsi 21h maka pertama-tama yang dilakukan komputer adalah
melihat isi atau nilai apa yang terdapat pada register AH. Misalkan bila nilai
AH adalah 2 maka komputer akan mencetak sebuah karakter, berdasarkan kode ASCII
yang terdapat pada register DL. Bila nilai pada register AH bukanlah 2, pada
saat dilakukan interupsi 21h maka
yang dikerjakaan oleh komputer akan lain lagi. Dengan
demikian kita bisa mencetak sebuah karakter yang diinginkan dengan meletakkan
angka 2 pada register AH dan meletakkan kode ASCII dari karakter yang ingin
dicetak pada register DL sebelum menghasilkan interupsi 21h.
MOV AH,02h ; Nilai
servis ntuk mencetak karakter
MOV DL,41; DL =
Karakter ASCII yang akan dicetak
INT 21h ; Cetak
karakter !!
INT 20h ; Selesai !
kembali ke DOS
MENCETAK
KARAKTER BESERTA ATRIBUT
Sebuah karakter disertai dengan warna tentunya akan lebih
menarik. Untuk itu anda bisa menggunakan interupsi ke 10h dengan aturan
pemakaiannya :
INPUT
AH
= 09h
AL
= Kode ASCII dari karakter yang akan dicetak
BH
= Nomor halaman(0 untuk halaman 1)
BL
= Atribut atau warna dari karakter yang akan dicetak
CX
= Banyaknya karakter tersebut akan dicetak
Setelah
semua register dimasukkan nilainya maka lakukanlah interupsi
10h.
Perlu anda perhatikan bahwa interupsi ini mencetak karakter tanpa menggunakan
cursor
MOV AH,09h ; Nilai
servis untuk mencetak karakter
MOV AL,41 ; AL =
Karakter yang akan dicetak
MOV BH,00h ; Nomor
Halaman layar
MOV BL,93h ; Warna
atau atribut dari karakter
MOV CX,03h ;
Banyaknya karakter yang ingin dicetak
INT 10h ; Laksanakan
!!!
INT 20h ; Selesai !
kembali ke DOS
PENGULANGAN
DENGAN LOOP
Perintah LOOP digunakan untuk melakukan
suatu proses yang berulang-ulang. Adapun syntax dari perintah ini adalah :
LOOP Tujuan .Tujuan dapat berupa suatu label yang telah
didefinisikan, contoh:
MOV CX,3 ; Banyaknya pengulangan yang dilakukan
Ulang : INT 10h ; Tempat terjadinya pengulangan
LOOP Ulang ; Lompat ke label 'Ulang'
Pada proses pengulangan dengan perintah LOOP, register CX
memegang suatu peranan yang khusus dimana register ini dijadikan sebagai
counter/penghitung terhadap banyaknya looping yang boleh terjadi. Setiap
ditemui perintah LOOP, maka register CX akan dikurangi dengan 1 terlebih
dahulu, kemudian akan dilihat apakah CX sudah mencapai 0. Proses looping akan
selesai bila nilai pada register CX mencapai nol. Seperti pada contoh diatas,
maka interupsi 10h akan dihasilkan
sebanyak 3 kali(sesuai dengan nilai CX). Perlu diperhatikan
bahwa jangan sampai anda menaruh CX kedalam proses LOOP karena hal ini akan
menyebabkan nilai CX diSET terus sehingga proses looping tidak bisa berhenti.
RICK:
Bila anda menetapkan nilai CX menjadi
nol pada saat pertama kali sebelum dilakukan loop, maka anda akan mendapatkan
proses looping yang terbanyak. Hal ini dikarenakan proses pengurangan 0 dengan
1 akan menghasilkan nilai FFFF Contoh :
MOV
CX,00
Ulang:
LOOP Ulang
MENCETAK
BEBERAPA KARAKTER
Untuk
mencetak beberapa karakter, bisa anda gunakan proses looping.
Contoh:
MOV AH,02h ; Nilai
servis
MOV DL,41 ;
DL=karakter 'A' atau DL=41h
MOV CX,10h ;
Banyaknya pengulangan yang akan
Ulang :
INT 21h ; Cetak
karakter !!
INC DL ; Tambah DL
dengan 1
LOOP Ulang ; Lompat
ke Ulang
INT 20h
Bila
program dijalankan maka akan ditampilkan :
ABCDEFGHIJKLMNOP
Perintah
INC
DL akan menambah register DL dengan 1,
seperti intruksi , DL:=DL+1 dalam Pascal.
Komentar
Posting Komentar