📌 레지스터(Register)

1. 레지스터란?

2. 주요 레지스터 종류

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

프로그램 실행 과정

  1. 실행할 프로그램이 1000번지부터 1500번지까지 저장

    스크린샷 2025-04-24 오전 5.40.31.png

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

    스크린샷 2025-04-24 오전 5.40.45.png

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

    스크린샷 2025-04-24 오전 5.41.01.png

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

    스크린샷 2025-04-24 오전 5.41.14.png

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

    스크린샷 2025-04-24 오전 5.41.40.png

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

    스크린샷 2025-04-24 오전 5.41.56.png

  7. 명령어 레지스터에서 명령어를 해석하고 제어신호 발생

<aside> 💡

무조건 순서대로 실행되는 것은 아니고 JUMP, CONTITIONAL, CALL, RET과 같이 특정 메모리 주소로 이동하고자 하는 명령어가 주어지면 프로그램 카운터에는 해당 특정 메모리 주소가 저장이 됩니다!

</aside>

🧭 주소 지정 방식 (Addressing Modes)

주소 지정 방식이란, 명령어에서 피연산자(operand)의 주소를 지정하는 방법을 의미해. CPU가 메모리에서 데이터를 어떻게 찾을지 결정하는 방식이기도 해.