본문 바로가기
보관/시스템 소프트웨어

Procedure Call in MIPS(2)

by unhyepnhj 2024. 10. 16.

Stack 영역

- 함수 호출 시 호출 이후에도 값이 유지되어야 하는 레지스터(참고)를 저장

- return address의 저장

- argument의 전달

- 지역 변수를 위한 공간 할당(nested call; 중첩 함수를 지원할 수 있어야 함)

※ Stack
- LIFO(Last In First Out)의 자료 구조
- $sp 레지스터가 stack의 가장 최근(=top) 저장 위치를 가리킴

 

스택에 정보를 저장하고 싶은 경우(4byte):

sub $sp, $sp, 4          stack pointer를 4바이트 감소(아래로, 4바이트의 공간 할당)

sw $t0, 0($sp)            $t0 레지스터에 있던 값을 $sp가 가리키는 공간에 저장

 

스택에서 정보를 인출하고 싶은 경우(4byte):
lw $t0, 0($sp)             $sp가 가리키는 공간에 있는 값을 $t0에 저장

sub $sp, $sp, 4          stack pointer를 4byte 증가(위로 이동, 할당했던 공간 복원)

'보관 > 시스템 소프트웨어' 카테고리의 다른 글

System Software and Program Execution(1)  (0) 2024.10.17
Procedure Call in MIPS(3)  (0) 2024.10.16
Procedure Call in MIPS(1)  (0) 2024.10.16
MIPS + MIPS Operations  (0) 2024.10.13
Introduction to System Software  (0) 2024.10.10