$zero
번호 : 0
용도 : the constant value 0
무슨 짓을 해도 항상 "0"이 읽어진다.
$at
번호 : 1
용도 : reserved for assembler
assembler가 사용하는 레지스터 만약 사용자가 이 레지스터를 사용해도 assembler가 사용하면 값이 바뀌기 때문에 사용 하지말자
의사 명령어(특정 조건 만족시 분기 명령어) 계산 결과를 위해 예약된 레지스터
v1
번호 : 2-3
용도 : values for results and expression evaluation
return의 결과를 쓴다.
a3
번호 : 4-7
용도 : argument
parameter 값 저장용 레지스터
t9
번호 : 8-15, 24-25
용도 : temporaries
값을 임시로 저장할 때 사용하는 레지스터 save되지 않는다.
s7
번호 : 16-23
용도 : saved
variable값을 저장할 때 사용하는 레지스터 save된다.
k1
번호 : 26-27
용도 : reserved for operating system
kernal용 레지스터
OS커널을 위해 예약된 레지스터
$gp
번호 : 28
용도 : global pointer
전역 포인터의 값을 저장하는 레지스터
$sp
번호 : 29
용도 : stack pointer
스택 포인터의 값을 저장하는 레지스터
$fp
번호 : 30
용도 : frame pointer
프레임 포인터의 값을 저장하는 레지스터
$ra
번호 : 31
용도 : return address
주소 반환값을 저장하는 레지스터