⭐레지스터의 흐름만 잘 관찰해도 프로그램의 실행 흐름을 파악할 수 있다!⭐
1. 프로그램 카운터
→ 메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저장하는 레지스터
→ 운영체제에서도 많이 등장하는 녀석..
2. 메모리 주소 레지스터
→ 메모리의 주소를 저장하는 레지스터, CPU가 읽어 들이고자 하는 주소값을 주소버스로 보낼때 메모리 주소 레지스터를 거치게 된다.
3. 메모리 버퍼 레지스터
→ 메모리와 주고 받을 값(데이터와 명령어)을 저장하는 레지스터
4. 명령어 레지스터
→ 해석할 명령어, 즉 방금 메모리에서 읽어들인 명령어를 저장하는 레지스터
→ 제어장치는 명령어 레지스터 속 명령어를 받아들이고 이를 해석한 뒤 제어신호로 내보낸다.
메모리에서 명령어를 읽어 들이는 과정중 위 네 가지 레지스터가 이용된다.
- 범용 레지스터
다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터- 플레그 레지스터
연산결과 또는 CPU의 상태에 대한 부가적인 정보를 저장하는 레지스터
- 스택 주소 지정 방식
→ 스택과 스택포인터(스택 저장방식의 꼭대기 번지(주소))를 이용한 주소 지정 방식- 변위 주소 지정 방식
- 상대 주소 지정 방식
→ 오퍼랜드와 프로그램 카운터 값을 더하여 유효주소를 얻는 방식- 베이스 레지스터 주소 지정 방식
→ 오퍼랜드와 베이스 레지스터 값을 더하여 유효주소를 얻는 방식
출처 : 강민철님 , ⌜혼자 공부하는 컴퓨터구조 + 운영체제⌟, 한빛미디어, 2022, ~125쪽