160
8. OPERASI SUB ROUTINE
Sub routin atau sering disebut sebagai program bagian merupakan program kecil yang dibuat untuk pemakaian yang berulang-ulang, artinya setiap kali ada proses
yang sama selalu memanggil program ini.
Fungsi sub routine dalam suatu program memiliki arti yang sangat penting untuk mengurangi sejumlah pemakaian memori, sedangkan perilaku yang harus
diberikan untuk memanfaatkan program bagian meliputi:
Proses pemanggilan sebuah program bagian
Penyimpan alamat loncat balik pada stack pointer
Perintah pemanggilan program bagian
Perintah loncat balik dari program bagian
Pemberian parameter pada program bagian
a. Program Bagian Sub Routine
Dalam program yang mempergunakan sebuah kelompok program yang sering dipakai, maka kelompok program ini dapat ditulis sekali saja, dan dapat dipanggil
dimana saja dalam program utama bila kelompok program ini diinginkan.
Kelompok program ini disebut Program Bagian atau Sub Routine Pemanggilan program bagian dengan mempergunakan perintah CALL . . . .
atau RST Restart , selalu menyimpan alamat perintah berikutnya pada Stack, alamat yang disimpan ini menjadi tujuan saat kembali setelah pelaksanaan
program bagian.
Perintah terakhir sebuah program bagian adalah selalu sebuah perintah returnkembali RET , yang fungsinya mengisi penghitung program program
counter PC , dengan alamat tujuan kembali yang disimpan di stack. Sehingga pelaksanaan perintah berikutnya pada program utama setelah kembali dari
program bagian adalah perintah yang alamatnya tersimpan pada .Stack
161
b. Proses Pemanggilan Sebuah Program Bagian
Pada setiap pemanggilan program bagian dengan CALL, pertama-tama. menyimpan alamat tujuan lompat pada Stack.
Kemudian terjadi sebuah lompatan untuk menjalankan perintah pada alamat pertama dari program bagian PC = Alamat awal program bagian .
Masing - masing perintah pada program bagian dijalankan secara berurutan. Perintah RET menggunakan alamat loncat balik dalam Stack, sebagai alamat
tujuan loncat balik ke program utama. PC = alamat loncat balik .
CPU akan melanjutkan pelaksanaan perintah berikutnya pada program utama mulai dari alamat loncat balik ini.
Urutan program bagian adalah bebas dan juga harus tidak saling mengikat dengan program bagian yang lain.
Perintah awal dari program bagian tidak ditentukan secara khusus, hanya perintah akhir dari program bagian harus selalu perintah RETURN RET .
162
Peletakan program didalam penyimpan program dan data memori lebih banyak seperti pada gambar berikut ini :
Program Utama HALT
Program Bagian 1 RET
Program Bagian RET
Data yang tidak berubah Konstanta
Data yang dapat berubah Variabel
Daerah Stack
c. Penyimpan Alamat Loncat Balik pada STACK