본문 바로가기

Computer Science/컴퓨터 구조

컴퓨터 구조 - 레지스터와 레지스터를 이용한 주소 지정 방식

  • 레지스터 : 프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장됩니다. 이 레지스터는 CPU 내부에 위치해있으며, CPU가 메모리에 접근할 때보다 레지스터에 접근할 때 그 속도가 더 빠릅니다. CPU 내부에는 다양한 레지스터가 존재하고, 각기 다른 역할을 가지고 있습니다.
  1.  프로그램 카운터 (PC; Program Counter) : 메모리에서 가져올 명령어의 주소를 저장합니다.
  2.  명령어 레지스터 (IR; Instruction Register) : 방금 메모리에서 읽어들인 명령어를 저장합니다.
  3.  메모리 주소 레지스터 (MAR; Memory Address Register) : 메모리의 주소를 저장합니다. CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 이 레지스터를 거치게 됩니다.
  4.  메모리 버퍼 레지스터 (MBR; Memory Buffer Register) : 메모리와 주고받을 값인 데이터와 명령어를 저장합니다. 메모리로부터 받거나, 메모리로 보낼 값은 이 레지스터에 저장됩니다. CPU가 데이터 버스를 통해서 메모리로 값을 보내려할 때 이 레지스터를 거치게 됩니다.
  5.  범용 레지스터 (General Purpose Register) : 다양하고 일반적인 상황에서 자유롭게 사용할 수 있습니다. 메모리 주소 레지스터나 메모리 버퍼 레지스터처럼 주소 또는 데이터만 저장할 수 있는 것과 다르게 데이터와 주소 모두 저장할 수 있습니다.
  6.  플래그 레지스터 (Flag Register) : ALU 연산 결과에 따른 플래그를 저장합니다.

 

  • 스택 주소 지정 방식 : 스택과 스택 포인터를 이용한 주소 지정 방식입니다. 스택 포인터는 스택의 꼭대기를 가리키는 역할, 즉 스택에 마지막으로 저장한 값의 위치를 저장하는 레지스터입니다. 스택은 메모리에 스택 영역에 있습니다.

  • 변위 주소 지정 방식 : 오퍼랜드의 필드 값(변위)과 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식입니다. 변위 주소 지정 방식은 어떤 레지스터를 사용하느냐에 따라서 상대 주소 지정 방식과 베이스 레지스터 주소 지정 방식이 있습니다.

변위 주소 지정 방식을 사용하는 명령어는 연산 코드 필드, 레지스터 필드, 오퍼랜드 필드가 있습니다.

  1. 상대 주소 지정 방식 : 오퍼랜드와 프로그램 카운터의 값을 더하여 유효주소를 얻는 방식입니다.
  2.  베이스 레지스터 주소 지정 방식 : 오퍼랜드와 베이스 레지스터의 값을 더하여 유효주소를 얻는 방식입니다.

 

 

공부 내용에 쓰인 이미지는 유튜브 채널 '개발자 강민철' 에서 스크랩했습니다.

https://www.youtube.com/@kangminchul