You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
HDTH Kiến trúc máy tính & Hợp Ngữ Bộ môn MMTVT - HCMUS<br />
• Đối số $a0, $a1, $a2, $a3<br />
• Kết quả trả về $v0, $v1<br />
• Biến cục bộ $s0, $s1, ... , $s7<br />
• Địa chỉ quay về $ra<br />
Cấu trúc của một thủ tục:<br />
Đầu thủ tục<br />
entry_label:<br />
addi $sp,$sp, -framesize # khai báo kích thước cho stack<br />
sw $ra, framesize-4($sp) # cất địa chỉ trở về của thủ tục trong $ra vào ngăn xếp<br />
(dùng khi gọi hàm lồng nhau)<br />
Lưu tạm các thanh ghi khác (nếu cần)<br />
Thân thủ tục ...<br />
(có thể gọi các thủ tục khác...)<br />
Cuối thủ tục<br />
Phục hồi các thanh ghi khác (nếu cần)<br />
lw $ra, framesize-4($sp) # lấy địa chỉ trở về ra $ra<br />
addi $sp,$sp, framesize<br />
jr $ra<br />
Gọi thủ tục: jal entry_label<br />
Giới thiệu chương trình MARS<br />
6