본문 바로가기
컴퓨터 구조

[컴퓨터 구조] 레지스터 part 2.

by GroovyCat11 2024. 11. 7.

지난 시간에 레지스터 part 1.을 진행했다면 이번 시간은 나머지 레지스터들에 대해서

알아보겠습니다!

 

레지스터의 종류

5. 플래그 레지스터

6. 범용 레지스터

7. 스택 포인터

8. 베이스 레지스터


우선 플래그 레지스터는 ALU 설명할 때 말씀드린 플래그 레지스터 구성대로 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 담고 있는 레지스터입니다.

플래그 레지스터

 

범용 레지스터는 다양하고 일반적인 상황에서 자유롭게 저장되고 쓰이는 레지스터라고 보면 됩니다.

스택 포인터는 스택의 꼭대기(주소) 정보가 저장되는 레지스터라고 보면 됩니다. 

마지막으로 베이스 레지스터는 기준 주소가 저장되는 레지스터입니다.

 

그래서 스택 포인터와 베이스 레지스터를 가지고 주소를 지정하는 방식이 존재합니다.

 

첫번째는 스택 포인터를 이용한 스택 주소 지정 방식입니다.

메모리에 존재하는 스택 영역과 스택 포인터를 이용해 주소를 지정하는 방식이고, 이때 스택 포인터는 스택의 꼭대기 즉, 스택이 어디까지 저장되어 있는지에 대한 표시(값)을 저장하고 있는 레지스터라고 보면 됩니다.

스택 주소 지정 방식

 

두번째는 변위 주소 지정 방식입니다.

변위 주소 지정 방식은 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소을 얻는 방식입니다.

변위 주소 지정 방식

 

위 그림처럼 수행되기 위해 명령어는 다음과 같은 형태를 지녀야 합니다.

변위 주소 지정 방식을 위한 명령어의 형태

 

변위 주소 지정 방식은 총 2가지로 나뉩니다. CPU마다 사용하는 방식이 다르지만 대부분의 CPU에서는 다음과 같은 방식으로 동작한다고 보면 됩니다.

1. 상대 주소 지정 방식: 오퍼랜드 필드의 값(변위)과 프로그램 카운터의 값을 더하여 유효 주소를 얻는 방식

상대 주소 지정 방식

 

2. 베이스 레지스터 주소 지정 방식: 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값(기준을 나타내는 주소)을 더하여 유효 주소를 얻는 방식

베이스 레지스터 주소 지정 방식

 

이렇게 CPU의 구성 요소 중 하나인 레지스터에 대해서 살펴봤습니다.

다음 살펴볼 내용은 CPU가 실행하는 명령어가 어떤 방법으로 처리가 되는지 알아보겠습니다.

이상 마치도록 하겠습니다!

감사합니다.