Register
레지스터
- 계산 중간결과의 저장이나 자주 사용되는 값을 저장하기 위해 Processor 내부에 소량 존재하는 저장장치
- 각각의 Register에는 이름이 지정되어 있어, 그 이름을 통해 접근한다.
(그에 반해, 무수히 많은 Memory 는 이름이 아닌 주소로 접근한다.)
- 크기 단위: Word
프로그래머에게 보여지는 32개 Registers (G, O, L, I Registers)
* System Register: 프로그래머가 사용할 수 없는 Register
G Register - (Global Register)
- Global data를 저장하는register이다.
"g" Notation | "r" Notation | Function |
%g0 | %r0 |
0만 기록되는 register (다른 값은 기록 X) |
%g1 | %r1 |
Global data* 저장 |
%g2 | %r2 | |
%g3 | %r3 | |
%g4 | %r4 | |
%g5 | %r5 | |
%g6 | %r6 | |
%g7 | %r7 |
* Global data: 여러 함수에서 사용되는 data
O Register - (Out Register)
- 출력에 관련된 data를 저장하는 register이다.
"o" Notation | "r" Notation | Function |
%o0 | %r8 |
argument 전달 local data 를 저장 |
%o1 | %r9 | |
%o2 | %r10 | |
%o3 | %r11 | |
%o4 | %r12 | |
%o5 | %r13 | |
%o6 (%sp) | %r14 | stack pointer 값을 저장 |
%o7 | %r15 | return address 값을 저장 |
L Register - (Local Register)
- Global data를 저장하는register이다.
"l" Notation | "r" Notation | Function |
%l0 | %r16 | Local data 저장 |
%l1 | %r17 | |
%l2 | %r18 | |
%l3 | %r19 | |
%l4 | %r20 | |
%l5 | %r21 | |
%l6 | %r22 | |
%l7 | %r23 |
I Register - (In Register)
- 입력에 관련된 data를 저장하는 register이다.
"i" Notation | "r" Notation | Function |
%i0 | %r24 | argument 입수 |
%i1 | %r25 | |
%i2 | %r26 | |
%i3 | %r27 | |
%i4 | %r28 | |
%i5 | %r29 | |
%i6 (%fp) | %r30 | frame pointer 값을 저장 |
%i7 | %r31 | return address 값을 저장 |