주소 지정 방식(Addressing Mode)
1) 즉시 주소 지정 방식(Immediate Addressing Mode)
: 오퍼랜드값 자체가 실제 데이터값을 지정하는 방식이다. 오퍼랜드가 명령어 내에 있는 주소 지정의 가장 간단한 형태로 오퍼랜드가 참조할 주소를 나타내는 것이 아니라 주어지는 '값' 자체이다. 변수의 초기값을 설정하거나 상수를 사용 또는 정의할 경우 사용된다.
장점 - 메모리 참조가 없으므로 처리 속도가 가장 빠르다.
단점 - 오퍼랜드의 크기, 즉 자료의 길이에 제한이 있다.
2) 레지스터 주소 지정 방식(Register Addressing Mode)
: 직접 주소 지정 방식과 유사하다. 차이점은 오퍼랜드 필드가 메인 메모리의 주소가 아닌 레지스터를 참조한다는 점만이 다르다.
장점 - 명령을 위한 주소 필드가 작아지며, 메모리를 참조하지 않는다.
단점 - 주소 공간의 제한이 있다.
3) 직접 주소 지정 방식(Direct Addressing Mode)
: 주소 필드가 오퍼랜드의 실제적인 주소를 포함하는 즉, 오퍼랜드가 직접 접근할 주소를 가지고 있는 형태이다. 프로그램의 주소와 기억 장치의 주소가 동일한 주소 지정 방식으로 한 번의 메모리 참조만이 있을 뿐 특별한 연산은 없다.
장점 - 명령어 형식이 간단하다.
단점 - 제한된 주소 공간을 제공하므로 융통성이 없다.
4) 계산에 의한 주소 지정
1. 레지스터 간접 주소 지정 방식(Register Indirect Addressing)
: 간접 주소 방식과 유사하나 차이점은 오퍼랜드 필드가 메모리 위치가 기억된 레지스터를 참조한다는것이다.
장점 - 많은 주소 공간을 활용할 수 있다.
단점 - 간접 주소 방식보다는 메모리 참조가 적게 일어나지만 여분이 메모리 참조가 필요하다.
2. 인덱스 주소 지정 방식(Index Addressing)
: 명령어의 오퍼랜드(주소) 부분과 인덱스 레지스터의 내용이 더해져서 실제 참조할 유효 번지가 결정되는 방식으로 계산에 의해 주소를 지정하는 방식이다.
장점 - Array 구조에 유용하다.
단점 - 시간 소요가 많다.
3. 베이스 레지스터 주소 지정 방식(Base-Register Addressing)
: 명령어의 오퍼랜드 부분과 베이스 레지스터의 내용이 더해져서 유효 번지가 결정된다. 인덱수 주소 지정 방식에서 인덱스 레지스터 대신에 베이스 레지스터가 사용된다는 점 이외에는 모두 같다.
4. 상대 주소 지정 방식(Relative Addressing Mode)
: 인덱스 주소 지정 방식과 유사하며 오퍼랜드의 부분과 프로그램 카운터가 더해져서 유효 번지를 결정하는 방식으로 명령어의 주소 비트를 절약할 수 있다.
5) 간접 주소 지정 방식(Indirect Addressing Mode)
: 직접 주소 방식의 문제점을 해결하기 위한 것으로 오퍼랜드 필드가 메모리내의 주소를 참조하여 그 주소로부터 유효 번지를 계산하여 메모리에 접근하는 방식이다.두 번의 메모리 엑세스가 일어난다.
장점 - 길이가 N인 워드에 대하여 2의 N승의 주소 공간을 활용할수 있다. 즉, 짧은 길이를 가진 명령어로 큰 용량의 기억 장소의 주소를 지정할수 있다.
단점 - 내용을 액세스하기 위해 두 번의 메모리 참조를 해야 하므로 처리 속도가 제일 느리다. 즉 주소에 대한 내용을 구한 후에 그 내용을 다시 한번 주소로 이용해서 내용을 구하기 때문이다.
'Backend > OS★' 카테고리의 다른 글
주 상태(Major State) (0) | 2011.05.26 |
---|---|
명령어 형식(Instruction Format) (0) | 2011.05.26 |
Critical System (0) | 2011.05.23 |
소프트웨어 절차(process) (0) | 2011.05.23 |
S/W engineering에서 사용하는 계층 구조 (0) | 2011.05.23 |