- Sebuah subroutine dipanggil dengan intruksi jal
- Sebuah subroutine tidak boleh memanggil subroutine yang lain
- Subroutine kemmbali ke CALLER dengan cra jr $ra
- Register yang digunakan adalah sebagai berikut:
- $t0 - $t9 — Subroutine bebas menggunakan register ini
- $s0 - $s7 — Subroutine tidak boleh mengubah isi dari register ini
- $a0 - $a3 — Register ini berisi argumen tentang subroutine. Subroutine boleh mengubahnya
- $v0 - $v1 — Register ini berisi nilai yang dihasilkan oleh subroutine
- Main routine mengembalikan kontrol ke user menggunakan exception handler
Secara subroutine tidak boleh memanggil subroutine yang lain maka program yang kita buat akan menggunakan main routine yang memanggil beberapa subroutine dan setiap subroutine harus kembali ke main routine.
Quest 9: Pertimbangkan ini, kenapa sebuah subroutine tidak boleh memanggil subroutine yang lain?
Jawab: karena register yang digunakan untuk menyimpan return address hanya satu sehingga kalau subroutine memanggil subroutine maka address untuk kembali ke main routine bisa hilang.
Tidak ada komentar:
Posting Komentar