MIPS에는 32개의 register들이 존재한다.
이 register들은 두종류로 분류할 수 있다.
Not preserved register / Preserved register
Not preserved register
- 이 register들은 processor가 마음대로 가져다 쓰고,
다시 원래 값을 복구시켜야 하는등의 일을 하지않아도 되는 temporary register들이다.
temporary register : $t0 ~ $t9
$a0 ~ $a3, $v0 ~ $v1
Preserved register
- 이 register들은 사용한 후 원래의 값들을 돌려줘야 하는 레지스터 들이다.
saved register : $s0 ~ $s7
Registers 정리
procedure 호출시 원래값을 돌려주지 않아도 되는 registers ( 12 )
$t0, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9
procedure 호출시 원래값을 돌려주어야 하는 registers ( 8 )
$s0, $s1, $s2, $s3, $s4, $s5, $s6, $s7
procedure 호출시 parameter 전달을 위해 사용하는 registers ( 4 )
$a0, $a1, $a2, $a3
procedure 호출시 return value를 전달하기 위해 사용하는 registers (2 )
$v0, $v1 ( $t 레지스터들과 마찬가지로 값에 신경쓰지 않아도 됨)
procedure 호출시 돌아갈 주소(return address)을 저장하기 위해 사용하는 register
$ra (return address, jal 사용시 바로 다음 번지가 자동저장)
0이 저장되어있는 특수 register
$zero (값 변경 불가능, 0)
stack point를 저장하는 특수 register
$sp (stack pointer)
$gp (global pointer)
procedure frame의 첫번째 워드를 가리키도록(frame pointer) 하는 특수 register
$fp (frame pointer)
'General > OS & CS' 카테고리의 다른 글
[컴퓨터 구조] 프로시저 procedure / 함수 fuction (0) | 2009.11.30 |
---|---|
[컴퓨터구조] 기본 명령어 정리 (1) | 2009.11.30 |
[OS] 캐시, 캐시메모리 (0) | 2009.11.30 |
[OS] 논리 주소공간 대 물리 주소공간 (0) | 2009.11.30 |
[OS] 분산시스템에서 미들웨어의 기능 (0) | 2009.11.30 |