초점 : 개발자가 알아야 할 배경지식
레지스터
CPU 안에 있는 작은 임시 저장장치 : 각기 다른 이름 & 역할 존재
- 프로그램을 이루는 데이터 & 명령어가 프로그램의 실행 전후로 레지스터에 저장 → 레지스터에 저장된 값만 잘 관찰해도 비교적 낮은 수준의 프로그램이 어떻게 작동하는지 파악 가능
- 각 레지스터는 저마다의 역할을 갖고 각자의 역할에 알맞은 내용들을 저장
<aside>
⚠️
CPU를 구성하는 레지스터들의 세세한 종류와 이름은 조금씩 다름. 아래에서 살펴볼 레지스터들은 대부분의 CPU가 공통적으로 포함하고 있는 대표적인 주요 레지스터에 해당
</aside>
1) 프로그램 카운터(명령어 포인터)
PC(Program Counter)
IP(Instruction Pointer)
메모리에서 다음으로 읽어 들일 명령어 주소를 저장하는 레지스터
- 일반적으로 프로그램 카운터는 1씩 증가(= 다음으로 읽어 들일 메모리 주소가 1씩 증가)
- 다만, 조건문이나 리턴문을 만나는 경우, 프로그램이 순차적으로 실행되지 않음 → 프로그램 카운터 값이 임의 위치로 변경
2) 명령어 레지스터
IR(Instruction Register)
해석할 명령어(메모리에서 방금 읽어 들인 명령어)를 저장하는 레지스터
- CPU 내 제어장치가 명령어 레지스터 속 명령어를 해석한 뒤, ALU로 하여금 연산하도록 시키거나 다른 부품으로 제어 신호를 보내 해당 부품을 작동시킴
3) 범용 레지스터
General Purpose Register
일반적인 상황에서 자유롭게 사용 가능한 레지스터