- 프로그램 카운터 : 메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어 주소)
- 명령어 레지스터 : 해석할 명령어(방금 메모리에서 읽어 들인 명령어
- 메모리 주소 레지스터 : 메모리의 주소(CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터
- 메모리 버퍼 레지스터 : CPU가 정보를 데이터 버스로 주고 받을 때 거치는 레지스터
- 실행과정
- 첫번째 명령어부터 실행된다고 했을 때 프로그램 카운터에 첫번째 명령어 주소가 저장됨
- 읽고자 하는 주소를 메모리 주소 레지스터에 복사된다
- 메모리 읽기 신호와 함께 몇번지 주소를 읽고싶은지 쏴줌
- 프로그램 카운터 1증가
- 데이터 버스를 통해서 해당 주소의 값을 메모리 버퍼 레지스터에 저장
- 명령어 레지스터에 해석할 명령어를 복사
- 실행과정
- 플래그 레지스터
- 연산 결과 또는 CPU 상태에 대한 부가적인 정보
- 범용 레지스터
- 다양하고 일반적인 상황에서 자유롭게 사용
- 스택 포인터
- 스택은 메모리 안에 있음 (스택영역)
- 스택의 꼭대기를 가리키는 레지스터(스텍이 어디까지 차있는지 표시)
- 스택 주소 지정 방식
- 스택과 스택 포인터를 이용한 주소 지정 방식
- 베이스 레지스터
- 기준 주소 저장
- 변위 주소 지정 방식
- 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소 얻기
- 상대 주소 지정 방식
- 오퍼랜드 필드의 값(변위)과 프로그램 카운터의 값을 더하여 유효 주소 얻기
- 베이스 레지스터 주소 지정 방식
- 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값을 더하여 유효 주소 얻기
-
- 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값을 더하여 유효 주소 얻기