주소 지정 방식

IT 위키
Addressing Mode; 주소 지정 방식
명령어의 주소부(Operand)로부터 실제 데이터가 있는 유효 주소(Effective Address)를 구하는 방법
방식 유효 주소 메모리 접근 특징
즉시 주소(Immediate) 주소부가 곧 데이터 0회 가장 빠르다. 값의 범위가 주소부 크기로 제한된다
직접 주소(Direct) 주소부의 값이 곧 유효 주소 1회 간단하다. 주소 공간이 주소부 크기로 제한된다
간접 주소(Indirect) 주소부가 가리키는 곳에 유효 주소가 들어 있다 2회 이상 주소 공간이 넓어지지만 느리다
레지스터 주소(Register) 주소부가 지정한 레지스터가 곧 데이터 0회 빠르다
레지스터 간접(Register Indirect) 레지스터의 값이 유효 주소 1회 포인터 구현에 쓴다
상대 주소(Relative) PC(프로그램 카운터) + 주소부 1회 재배치 가능한 코드, 분기 명령
베이스 레지스터(Base Register) 베이스 레지스터 + 주소부 1회 프로그램 재배치, 세그먼트
인덱스 레지스터(Indexed) 인덱스 레지스터 + 주소부 1회 배열 원소 접근
묵시적 주소(Implied) 명령어가 대상을 이미 지정 누산기를 쓰는 명령(CLA 등)
  • "명령어의 주소부를 유효주소로 그대로 이용하는 방법"이 직접 주소다.
  • 즉시 주소는 주소부를 데이터로 쓰는 것이라 유효 주소라는 개념 자체가 없다. 둘을 혼동하지 않는다.
  • 절대 주소는 기억장치의 물리 주소를 그대로 가리키는 것이고, 상대 주소는 기준점(PC 등)으로부터의 변위다.

계산 순서

[편집 | 원본 편집]
즉시 → 직접 → 간접 순으로 메모리 접근 횟수가 늘고, 그만큼 느려지는 대신 표현할 수 있는 주소 공간은 넓어진다.

같이 보기

[편집 | 원본 편집]