| 레지스터 명칭 | 설명 |
|---|---|
| **Program Counter | |
| 프로그램 카운터(PC)** | 다음에 실행할 명령어의 주소를 저장 |
| **Instruction Register | |
| 명령어 레지스터(IR)** | 현재 실행 중인 명령어를 저장 |
| **Memory Address Register | |
| 메모리 주소 레지스터(MAR)** | 접근할 메모리 주소를 저장 |
| **Memory Buffer Register | |
| 메모리 버퍼 레지스터 (MDR)** | 메모리에서 읽거나 쓸 데이터를 저장 |
| 메모리 데이터 레지스터라고도 함 | |
| **General Purpose Registers | |
| 범용 레지스터(GPRs)** | 범용 레지스터로 변수 저장 등에 사용 |
| Flag Register | |
| 플래그 레지스터(FR) | 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터 |
실행할 프로그램이 1000번지부터 1500번지까지 저장

프로그램 카운터에 1000번지가 저장

1000번지를 읽기 위해 메모리 주소 레지스터에 저장

메모리 주소 레지스터에서 값이 주소버스를 통해, 제어 신호가 제어 버스를 통해 메모리의 1000번지로 보내짐

1000번지에 저장된 값은 데이터 버스를 통해 메모리 버퍼 레지스터로 전달, 프로그램 카운터는 증가되어 다음 명령을 읽을 준비

메모리 버퍼 레지스터에서 명령어 레지스터로 값이 이동

명령어 레지스터에서 명령어를 해석하고 제어신호 발생
<aside> 💡
무조건 순서대로 실행되는 것은 아니고 JUMP, CONTITIONAL, CALL, RET과 같이 특정 메모리 주소로 이동하고자 하는 명령어가 주어지면 프로그램 카운터에는 해당 특정 메모리 주소가 저장이 됩니다!
</aside>
주소 지정 방식이란, 명령어에서 피연산자(operand)의 주소를 지정하는 방법을 의미해. CPU가 메모리에서 데이터를 어떻게 찾을지 결정하는 방식이기도 해.