공부를하자 2023. 6. 25. 15:58

1.레지스터(Register)

  1)정의:정보를 처리하는 사용되는 임시 저장소

 2.레지스터의 종류

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

      :메모리에서 가져올 명령어의 주소, 메모리에서 읽어 들일 명령어의 주소를 저장

       명령어 포인터(IP: Instruction Pointer)라고도 한다.

    2)명령어 레지스터(IR:Instruction Register)

     : 해석할 명령어, 메모리에서 받아온 명령어를 저장하는 레지스터

       제어장치는 명령어 레지스터 명령어를 받아들이고 해석하고 제어신호를 내보낸다.

    3)메모리 주소 레지스터(MAR: Memory Address Register)

     : 메모리의 주소를 저장하는 레지스터.

       CPU 읽어 들이고자 하는 주소값을 주소버스로 보낼 메모리 주소 레지스터를 거치게 된다.

    4)메모리 버퍼 레지스터(MBR: Memory Buffer Register)

      :메모리와 주고받을 (데이터와 명령어) 저장하는 레지스터.

       메모리에 쓰고 받고 하는 값은 메모리 버퍼 레지스터를 통과한다.

*레지스터의 작동과정

첫째.실행된 프로그램이 1000번과 1500까지 저장돼 있다고 가정.

      1000번지에는 1101번이 저장

 둘째.프로그램이 처음 실행되기 위해 프로그램 카운터에 1000번지가 저장.

 

  셋째.1000번지룰 읽기 위해 주소버스로 메모리 주소레지스터에 1000번이 저장

  넷째.메모리 읽기 제어신화 메모리 주소 레지스터 값이 각각 제어버스와 주소버스를 통해

        메모라에 전달

   다섯 번째.메모리 1000번지에 저장된 값이 데이터 버스를 통해 메모리 버퍼 레지스터에 전달되고

                프로그램 카운터가 증가해서 다음 명령어를 읽어들일 준비를 한다.

 

 

  여섯 번째.메모리 버퍼 레지스터에 저장된 값은 명령어 레지스터로 이동

   일곱 번째.제어장치는 명령어 레지스터의 명령어를 해석하고 제어신호를 발생시킨다.

 

 

    5)범용레지스터(General purpose register)

     :다양하고 일반적인 상황에서 자유롭게 사용할 있는 레지스터 주소 모두 담을 있다.

    6)플래그 레지스터(Flag Register)

     :연산 결과 또는  CPU 상태에 부가적인 정보를 저장하는 레지스터.

    7)스택 포인터(Stack Pointer)

      :주소 지정 방식중 스택 주소 지정방식에서 사용되는 특별한 레지스터 .

    8)베이스 레지스터

      :주소 지정 방식 변위 주소 지정방식에서 사용되는 특별한 레지스터.

3.스택 주소 지정방식

1)정의:

  스택과 스택 포인터를 이용한 주소 지정 방식

2)스택

  :선입후출(먼저 들어온 데이터가 나중에 나가는) 방식의 데이터 구조

3)스택 포인터

  :스택의 꼭대기 마지막에 저장된 데이터

 

 

메모리에는 스택영역이라는 부분이 있다.

 

4.변위 주소지정방식

 1)정의

   :명령어의 오퍼랜드 값과 특정 레지스터 값을 더하여 유효주소를 얻어내는 주소 지정방식.

   어떤 레지스터와 오퍼랜드 필드를 더하는 방식에 따라

   상대 주소 지정방식,베이스 레지스터 주소 지정방식이 있다.

 

 

  2)상대주소 지정방식(relative addressing mode)

   -오퍼랜드와 프로그램 카운터의 값을 더하여 유효 주소를 얻는 방식.

3)베이스 레지스터 주소 지정방식(Base-register addressing mode)

  -오퍼랜드와 베이스 레지스터의 값을 더하여 유효주소를 얻는 방식.