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 |