<aside> 💡 목차
</aside>
0 |
0 상수 고정 | |
|---|---|---|
1 |
0~31 | |
~ |
범용 레지스터 GP 영역 | 32bit |
31 |
각 비트당 32bit | |
PC |
다음에 실행할 명령어 저장 | 32bit |
LO |
곱셈 나눗셈 하위 32비트 | 32bit |
HI |
곱셈 나눗셈 상위 32비트 | 32bit |
| 0 | $ zero |
상수 0 고정 | |
|---|---|---|---|
| 1 | $ at |
어셈블러가 명령어 번역하거나 데이터 처리할때 씀 | |
| 2 | $ v0 |
caller saves |
상위 32비트 리턴값 |
| 3 | $ v1 |
하위 32비트 리턴값 | |
| 4 | $ a0 |
caller saves |
caller saves |
| 5 | $ a1 |
인수 (arguments) | |
| 6 | $ a2 |
print(a) ← a 가 인수 | |
| 7 | $ a3 |
||
| 8 | $ t0 |
caller saves |
임시값 1 (temporary) |
| ~ | 함수 내에서 함수가 실행되었을때, 원래 지점으로 돌아가기 위함 (체크포인트 아닌듯) | ||
| 15 | $ t7 |
2 + 3 할때 5를 표현할때 5를 저장할 필요는 없으니 그냥 출력하는개념 | |
| 16 | $ s0 |
callee saves |
전역변수, 상수 (permanent) |
| ~ | |||
| 23 | $ s7 |
||
| 24 | $ t8 |
caller saves |
임시값 2 (temporary) |
| 25 | $ t9 |
||
| 26 | $ k0 |
reserved |
운영체제 (OS kernel) |
| 27 | $ k1 |
||
| 28 | $ gp |
caller saves |
(Global Pointer) malloc 이나 array같이 배열의 시작 위치를 담는 포인터 |
| 29 | $ sp |
preserved |
(Stack Pointer) 스택의 현재 위치를 담는 포인터 |
| 30 | $ fp |
callee saves |
(Frame Pointer) 멀티태스킹할때 각 task들이 저장될 프레임들 |
| 31 | $ ra |
caller saves |
(Return Address) |
| 특정 함수가 종료되고 함수가 실행되기 직전 실행 위치로 돌아가기 위해 사용되는 | |||
| 이전 작업 주소 포인터 |