얇고 넓은 CS지식 - 레지스터 주소 지정

박종일·2023년 4월 24일
0

레지스터 주소 지정

  • 레지스터 주소 지정 방식
    • 연산에 사용될 데이터가 내부 레지스터에 저장되어 있는 경우, 명령어의 오퍼랜드가 해당 레지스터를 가리키는 방식
    • 오퍼랜드 필드의 비트 수가 적어도 됨
    • 데이터 인출을 위하여 기억장치 엑세스할 필요 없음
    • 명령어 실행 시간이 짧아짐
    • 데이터가 저장될 수 있는 위치가 CPU 내부 레지스터로 제한

레지스터 간접 주소 지정

  • 레지스터 간접 주소 방식
    • 지정된 레지스터 내용을 유효 주소로 사용하여, 그 주소가 가리키는 기억장치로 부터 읽어온 데이터를 연산에 사용하는 방식
    • 유효 주소가 레지스터에 저장되어 있음
    • 데이터 인출을 위해 한번의 기억 장치 엑세스가 필요

변위 주소 지정

  • 변위 주소 지정 방식
    • 지정된 레지스터 내용과 명령어 내의 오퍼랜드(변위)를 더하여 유효 주소를 결정하는 주소 지정 방식
    • 유효주소: EA = (R) + A
    • 레지스터의 내용 + 변위를 나타내는 주소 A
    • 오퍼랜드 필드는 절대 주소를 의미하지 않고, 레지스터의 값을 기준으로 한 상대적 거리를 나타냄
    • 기준 주소를 저장하고 있는 레지스터에 따라 구분
      • 상대 주소 지정 방식 ---1
      • 베이스 레지스터 주소지정방식---2
      • 인덱스 주소지정방식---3
상대주소지정
  • 상대 주소 지정 방식
    • PC(프로그램 카운터)를 기준 레지스터로 사용
    • 유효주소 : EA = (PC) + A
    • A는 일반적으로 2의 보수로 표현

문제 : 상대주소지정방식을 사용하는 RJMP A 명령어가 450번지에 저장되어 있다. 만일 오퍼랜드 A = -50이라면 몇 번지로 점프하는가?

sol) PC 내용은 다음에 실행할 명령어의 주소 이므로
451번지에 있고 A는 -50 d이므로
451 - 50 = 401 번지로 점프한다.

인덱스 주소 지정
  • 인덱스 주소 지정 방식

베이스 레지스터 주소 지정
  • 베이스 레지스터 주소 지정 방식
    • 베이스 레지스터의 내용과 변위 A를 더하여 유효 주소를 결정
    • 유효주소: EA = (BR) + A

인덱스 주소 지정 방식과 베이스 레지스터 주소 지정 방식은 레지스터 사용 방식이 다르다.
인덱스 레지스터는 명령어에 포함된 주소 A를 기준으로 하는 인덱스 값이 저장하고
베이스 레지스터는 기준이 되는 명령어의 주소를 저장한다.

짧고 얄팍한 CS지식~~

profile
존경하는 인물: 스토브리그 백승수 단장(남궁민)

0개의 댓글