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

Postingan populer dari blog ini

KISI KISI SOAL UAS MK : ARSITEKTUR & ORGANISASI KOMPUTER

SISTEM INFORMASI