ในกรณีที่คอมไพเลอร์ต้องการใช้งานรีจีสเตอร์ในการส่งพารามิเตอร์มากกว่าจำนวนรีจีสเตอร์ 4 ตัวที่มีอยู่ และส่งค่ากลับมากกว่าสองค่า ในการเรียกฟังก์ชั่นดังกล่าว บางครั้งจำเป็นต้องย้ายค่าในรีจีสเตอร์ไปเก็บไว้ในหน่วยความจำ และค่ารีจีสเตอร์ที่ Caller ต้องการใช้จะต้องได้รับการคืนค่าเดิมให้เหมือนกับสถานะก่อนการเรียกฟังก์ชั่น
โครงสร้างข้อมูลที่เหมาะสมในการดำเนินการดังกล่าว คือโครงสร้างข้อมูลแบบสแตก (Stack) ที่เป็นแบบ last-in-first-out การทำงานของสแตก จะประกอบด้วยรีจีสเตอร์ที่ชี้ Word แรกของข้อมูล ที่เรียกว่า Stack Pointer (SP) การนำข้อมูลเก็บไว้ในสแตกเรียกว่า push และการเรียกข้อมูลออกจากสแตกเรียกว่า pop
ระบบการพัฒนาซอฟต์แวร์ของ MIPS สำรองรีจีสเตอร์เอาไว้หนึ่งตัวเรียกว่า stack pointer $sp สำหรับเก็บค่ารีจีสเตอร์ต่างๆ สำหรับ callee สแตกจะขยายตัวจากค่าแอดเดรสสูงมาสู่แอดเดรสต่ำ นั้นหมายถึงเรานำค่าใส่ในสแตกโดยการลดค่าของแอดเดรสลง