Procedure
merupakan suatu alat bantu yang sangat berguna. Dengan procedure suatu program
yang besar bisa diselesaikan dengan lebih mudah. Proses pencarian kesalahanpun
akan lebih mudah bila digunakan procedure.
MEMBUAT
PROCEDURE
Untuk
membuat procedure bisa anda gunakan bentuk seperti gambar dibawah ini:
-------------------------------------------------------------
NamaP
PROC NEAR/FAR
+---------+
|
Program |
+---------+
RET
NamaP
ENDP
-------------------------------------------------------------
"NamaP"
adalah nama dari procedure yang kita definisikan sendiri. Untuk memudahkan nama
untuk procedure bisa anda definisikan sesuai dengan fungsi dari procedure
tersebut, seperti CLS untuk procedure yang tugasnya menghapus layar.
Dibelakang
kata "PROC" anda harus memilih bentuk dari procedure tersebut, yaitu
"NEAR" atau "FAR". Bentuk "NEAR" digunakan jika
procedure tersebut nantinya dipanggil oleh program yang letaknya masih satu
segment dari procedure tersebut. Pada program COM yang terdiri atas satu
segment, kita akan selalu menggunakan bentuk "NEAR". Sebaliknya
bentuk "FAR" ini digunakan bila procedure dapat dipanggil dari
segment lain. Bentuk ini akan kita gunakan pada program EXE.
Perintah "RET(Return)" digunakan untuk mengembalikan
Kontrol program pada sipemanggil procedure. Pada bentuk NEAR perintah RET ini
akan memPOP atau mengambil register IP dari stack sebagai alamat loncatan
menuju program pemanggil procedure. Sedangkan pada bentuk "FAR"
perintah RET akan mengambil register IP dan CS dari stack sebagai alamat
loncatan menuju program pemanggil procedure. Alamat kembali untuk procedure
disimpan pada stack pada saat procedure tersebut dipanggil dengan perintah
"CALL", dengan syntax:
CALL NamaP
Perintah
Call ini akan menyimpan register IP saja bila procedure yang dipanggil
berbentuk "NEAR". Bila procedure yang dipanggil berbentuk
"FAR", maka perintah "CALL" akan menyimpan register CS dan
IP.
MENGGUNAKAN
PROCEDURE
Sebagai
contoh dari pemakaian procedure akan kita lihat pada program dibawah ini yang
mencetak karakter dengan procedure.
Siapkan terlebih dahulu command prompt, kemudian ketikkan program
dibawah ini di layar edit.
.model small
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,2h
mov dl,'A'
int 21h
ret
cetak_kar endp
end proses
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,2h
mov dl,'A'
int 21h
ret
cetak_kar endp
end proses
Simpan program dengan ekstension
.asm. kemudian cek kesalahan menggunakan TASM dan cetak program menggunakan
TLINK.
Bila program dijalankan, maka pada layar akan ditampilkan huruf
"A". Untuk membuat sebuah procedure ingatlah untuk menyimpan semua
register yang digunakan oleh procedure tersebut dan mengembalikan semua isi
register pada akhir procedure. Hal ini dilakukan untuk menjaga supaya program
utama yang menggunakan procedure tersebut tidak menjadi kacau nantinya.
Selanjutnya kita coba membuat program
untuk mencetak karakter A - Z satu warna, masih menggunakan procedure.
.model small
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,2h
mov dl,'A'
mov cx,26
ulang :
int 21h
inc dl
loop ulang
ret
cetak_kar endp
end proses
.model small
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,2h
mov dl,'A'
mov cx,26
ulang :
int 21h
inc dl
loop ulang
ret
cetak_kar endp
end proses
Simpanlah program kemudian
jalankan program dengan TASM terlebih dahulu lalu kemudian TLINK.
Maka program yang sudah
dijalankan akan tercetak huruf A-Z satu warna.
Apabila ingin mencetak karakter A
- Z warna - warni, berikut kode programnya:
.model small
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,9h
mov bl,99h
mov cx,26
ulang :
int 10h
inc bl
loop ulang
mov ah,2h
mov dl,'A'
mov cx,26
lagi :
int 21h
inc dl
loop lagi
ret
cetak_kar endp
end proses
.model small
.code
org 100h
proses : call cetak_kar
int 20h
cetak_kar proc near
mov ah,9h
mov bl,99h
mov cx,26
ulang :
int 10h
inc bl
loop ulang
mov ah,2h
mov dl,'A'
mov cx,26
lagi :
int 21h
inc dl
loop lagi
ret
cetak_kar endp
end proses
Jalankan program, maka akan
tercetak karakter A-Z warna-warni.