레지스터는 CPU 내부의 작은 임시저장장치이다. 프로그램 속 명령어와 데이터는 실행 전후로 레지스터에 저장된다.
프로그래머 입장에서 중요한 장치이다. 왜냐하면 개발하고 실행하는 과정에서 레지스터에 담긴 값들을 관찰하면서 기초적인 단계에서부터 실행되는 순서나 원리를 파악할 수 있기 때문이다.
레지스터의 종류
레지스터의 종류는 CPU마다 다르지만 학습을 위해 대부분의 전공서와 CPU가 공통적으로 포함하고 있는 레지스터는 아래와 같다.
- 프로그램 카운터 : 메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어의 주소)
*행동이 끝나면 순차적으로 진행하기 위해 기존의 값에서 1증가한다. - 명령어 레지스터 : 해석할 명령어(방금 메모리에서 읽어 들인 명령어)
- 메모리 주소 레지스터 : 메모리의 주소
- 메모리 버퍼 레지스터 : 메모리와 주고받을 값(CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터)
- 플래그 레지스터 : 연산 결과 또는 CPU 상태에 대한 부가적인 정보
- 범용 레지스터 : 다양하고 일반적인 상황에서 자유롭게 사용
- 스택 레지스터 : 주소 지정에 사용
- 베이스 레지스터 : 주소지정에 사용
순차적인 실행 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 실행 시(e.g. JUMP, CONDITION JUMP, CALL, RET)
- 인터럽트 발생 시
- ETC...
특정 레지스터를 이용한 주소 지정 방식
- 스택 주소 지정 방식 : 스택과 스택 포인터를 이용한 주소 지정 방식
- 스택포인터 : 스택의 꼭대기를 가리키는 레지스터(스택이 어디까지 차 있는지에 대한 표시)
- 변위 주소 지정 방식 : 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소 얻기
특정 레지스터=프로그램 카운터, 베이스 레지스터
- 상대 주소 지정 방식 : 오퍼랜드 필드의 값(변위)과 프로그램 카운터의 값을 더하여 유효 주소 얻기
- 베이스 레지스터 주소 지정 방식 : 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값을 더하여 유효 주소 얻기
'컴퓨터공학' 카테고리의 다른 글
9. 빠른 CPU을 위한 설계 기법 (0) | 2024.10.05 |
---|---|
8. 명령어 사이클과 인터럽트 (0) | 2024.10.04 |
5. CPU의 작동원리 : ALU와 제어장치 (0) | 2024.10.01 |
4. 소스코드와 명령어 (0) | 2024.09.30 |
3.데이터 0과 1로 문자를 표현하는 방법 (4) | 2024.09.28 |