프로그램 속 명령어와 데이터는 실행전후로 반드시 레지스터에 저장된다.
레지스터들은 CPU마다 이름, 크기, 종류가 매우 다양하다 그 중 대표적인 8가지는
- 프로그램 카운터(명령어 포인터)
- 메모리에서 읽어 들일 명령어의 주소를 저장
- 명령어 레지스터
- 방금 메모리에서 읽어 들인 명령어를 저장하는 레지스터ㅁ
- 메모리 주소 레지스터
- 메모리의 주소를 저장하는 레지스터
- CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 메모리 주소 레지스터를 거치게 된다.
- 메모리 버퍼(데이터) 레지스터
- 메모리와 주고받을 값을 저장하는 레지스터
- 범용 레지스터
- 데이터와 주소를 모두 저장하는 레지스터 다양하고 자유롭게 사용 가능
- 메모리 버퍼 레지스터는 데이터버스로 주고받을 값만 저장
- 메모리 주소 레지스터는 주소 버스로 내보낼 주소값만 저장
- 플래그 레지스터
- 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터
- 스택 주소 지정 방식
- 스택과 스택 포인터를 이용한 주소 방식
- 스택 포인터란 스택의 꼭대기를 가리키는 레지스터
- 스택은 메모리안에 스택처럼 사용할 영역이 정해져 있는 스택영역에 있음.
- 변위 주소 지정 방식
- 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식
- 상대 지정 방식 : 오퍼랜드와 프로그램 카운터의 값을 더하여 유효 주소를 얻는 방식
- 프로그램 카운터에 명령어 주소 오퍼랜드에 -3이 있다면 프로그램 카운터 주소 -3 값을 불러옴
- 베이스 레지스터 주소 지정 방식 : 오퍼랜드와 베이스 레지스터의 값을 더하여 유효 주소를 얻는 방식
- 베이스 레지스터에 200 오퍼랜드에 40이 있다면 기준 주소에 +240 값을 불러옴
'CS공부 > 컴퓨터구조' 카테고리의 다른 글
5-1. 클럭 코어 스레드 (0) | 2025.05.23 |
---|---|
4-3. 명령어 사이클과 인터럽트 (0) | 2025.04.23 |
4-1. ALU와 제어장치 (0) | 2025.04.23 |
3-2. 명령어의 구조 (0) | 2025.04.21 |
2. 데이터란 무엇이며, 컴퓨터는 어떻게 이해할까? (0) | 2025.04.07 |