Laman

Kamis, 18 April 2013

Diagram

Aturan ini adalah rumit. Secara garis besar cara kerjanya sama dengan bab sebelumnya tentang konvensi linkage berbasis stack. Tapi sekarang, prolog subroutine menumpuk sejumlah ruangan di dalam stack untuk digunakan sebagai variabel lokal, dan di epilog mereka menge pop out.

Inilah gambarannya. Gambar menunjukkan bagian dari subroutine linkage, tugas-tugas dasarnya adalah sebagai berikut:

Memanggil subroutine: Tumpuk register T yang memegang nilai yang perlu diamankan. Letakkan argumen di register A. jal ke subroutine

Prolog: Tumpuk $ra dan $fp milik caller, tumpuk register S. Inisialisasi $fp dan $sp milik diri sendiri

Body: Normal code, kecuali jika dia memanggil subroutine lainnya maka aturan akan berlaku. Register T dan register A boleh digunakan secara bebas sebagaimana S yang telah diamankan sebelumnya. Akses ke variabel lokal menggunakan distance($fp).

Epilog: Letakkan nilai hasil ke dalam register V. Reset $sp melewati ruangan variable. Pop register S, pop $fp milik caller dan $ra. Kembali ke caller dengan jr $ra

Mendapatkan kontrol kembali: Pop out register T yang telah diamankan

Tidak ada komentar:

Posting Komentar