본문 바로가기

CS/컴퓨터구조

[컴퓨터구조] Addressing Mode(주소지정 방식)

728x90


Instruction에서 operand의 주소가 어떻게 지정 되는가?


1. Immediate addressing 즉시 주소 지정 방식

operandInstrunction에 포함된다. ex) ADD 5

장점 : 빠르다

단점 : 수의 크기에 제한이 있다









 

2. Direct Addressing 직접 주소 지정 방식

InstructionOperand의 주소가 들어간다. 한번의 메모리 접근이 필요하다. ex. ADD A

단점: 주소공간이 제한된다.


3. Indirect Addressing 간접 주소 지정 방식

Instruction의 주소필드는 실제 Operand의 주소 값을 가지는 곳의 주소를 가진다. ex. ADD (A)

장점 : word길이가 n이면 2^n개의 주소 공간을 가진다.

단점 : 실행에 2번의 메모리 접근이 필요해서 느리다.


 

4. register addressing 레지스터 주소 지정

direct addressing과 유사한데, 주소 필드가 주 기억장치 주소가 아닌 레지스터를 가르킨다. 레지스터에 Operand가 있다.

장점 : 명령어의 주소필드가 작아도 됨. 메모리 접근이 없다. 매우 빠르다

단점 : 레지수터 개수에 제한이있음.


5. register Indirect Addressing 레지스터 간접 주소 지정 방식

간접 주소 지정 방식과 유사. Instruction의 주소필드는 register를 가르키고, 레지스터는 메모리의 operand의 주소값을 가진다.

장점 : 넓은 주소 공간, 한번의 메모리 접근이 있다.


6. Displacement Addressing 변위 주소 지정 방식

주소필드는 기준값과 변위값을 가진다. 3가지 방식이 있음


6-1 relative addressing 상대 주소 지정

레지스터가 PC를 가진다. 다음 명령어 주소가 주소 필드에 더해진다. 유효 주소는 명령어의 주소를 기준으로 한 상대적인 변위이다. 지역성 때문에 현재 실행되는 명령어와 인접한 명령들이 주로 실행하면 주소 비트를 절약할 수 있다.


6-2 Base-Register Addressing 베이스-레지스터 주소 지정

레지스터는 메모리의 주소를 가지고 있고, 주소필드는 그 주소로부터의 변위 값을 가진다.


6-3 Indexed Addressing 인덱싱

레지스터는 변위 값을 가지고, 주소필드는 메모리 주소를 가지고 있다.

postindex : 간접주소지정을 한 후 인덱싱한다.

preindex : 인덱싱을 한 후 간접주소지정을 한다.

array와 같은 연속된 연산에 좋다.


7. Stack addressing 스택 주소 지정

메모리 주소를 포함하지 않음 ex. ADD -> top2개를 pop하여 더한다.

'CS > 컴퓨터구조' 카테고리의 다른 글

[컴퓨터 구조] CISC와 RISC 비교, 장단점  (0) 2016.06.13