CS

CPU - 레지스터

rhdaud2 2025. 3. 25. 18:51

 

레지스터 : cpu 내부의 작은 임시 저장장치

- cpu 내에 다양한 레지스터가 존재, 각자 다른 이름과 역할 보유
- 데이터/명령어가 프로그램 실행 전후로 레지스터에 저장
*레지스터 관찰 : WinDbg(윈도우 운영체제), gdb(리눅스, 맥 os 운영체제) 등의 디버깅 도구를 이용해 관찰

[명령어가 프로그램 실행 전후로 레지스터에 저장되기때문에, 레지스터에 어떤 값이 저장되는지만 잘 관찰해도 '가장 낮은 수준에서의 프로그램 동작' 관찰 가능]

 

 

 

 

 

 

 

** 주요 레지스터

1. 프로그램 카운터 (PC, Program Counter)

- 메모리에서 다음으로 읽어들일 명령어의 주소 저장
- CPU에 따라 명령어 포인터(IP, Instruction Pointer)라고 부르기도 함
- 일반적으로 PC(프로그램 카운터)는 1씩 증가.
   ㄴ 다음으로 읽어들일 메로리 주소가 1씩 증가 -> 순차적 인출 및 실행 가능
(일반적이지 않은 경우 : 조건문, 함수 실행 등)

2. 명령어 레지스터 (IR, Instruction Register) - *Instruction:설명

- 메모리에서 방금 읽어들인 명령어 저장
- 명령어 레지스터 속 명령어 해석 후 ALU(산술논리연산장치)로 연산을 시키거나 다른 부품으로 제어 신호를 보내 작동시킴

3. 범용 레지스터 (general purpose register)
- (일반적 상황에서) 자유롭게 사용할 수 있는 레지스터
- 데이터, 명령어, 주소 모두 저장 가능
* 일반적으로 CPU 안에는 여러개의 범용 레지스터 존재

4. 플래그 레지스터 (flag register)
- flag 값을 저장하는 레지스터
* flag: 연산의 결과 혹은 cpu 상태에 대한 부가정보

 

flag 종류

 

연산 결과가 0인 플래그 레지스터

 

 

5. 스택 포인터 (stack pointer)
- 메모리 내 스택 영역의 최상단을 가리키는 레지스터

 

 

'CS' 카테고리의 다른 글

CPU - 성능 개선  (0) 2025.04.06
CPU-인터럽트  (0) 2025.04.02
명령어  (0) 2025.03.25
데이터  (0) 2025.03.24
cs 학습의 필요 이유(당연한 이야기)  (0) 2025.03.24