Instruction에서 operand의 주소가 어떻게 지정 되는가?
1. Immediate addressing 즉시 주소 지정 방식
operand가 Instrunction에 포함된다. ex) ADD 5
장점 : 빠르다
단점 : 수의 크기에 제한이 있다
2. Direct Addressing 직접 주소 지정 방식
Instruction에 Operand의 주소가 들어간다. 한번의 메모리 접근이 필요하다. 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 -> top의 2개를 pop하여 더한다.
'CS > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] CISC와 RISC 비교, 장단점 (0) | 2016.06.13 |
---|