본문 바로가기

컴퓨터구조

컴퓨터구조: 주소 지정 방식

728x90
반응형

오퍼랜드 위치를 지정하는 것을 주소 지정(addressing)이라고 한다.

 

즉시 주소 지정

명령어가 오퍼랜드를 지정하는 가장 간단한 방법은 명령어 자체에 오퍼랜드를 포함하는 것이다.

즉, 명령어에 오퍼랜드가 포함되어 명령어가 인출될 때 오퍼랜드도 자동으로 인출된다.

직접 주소 지정

메모리에 위치한 오퍼랜드를 지정하는 방법은 전체 주소를 지정하는 것

명령어는 항상 정확히 동일한 메모리 위치에 액세스한다. 값이 변할 수는 있지만 위치는 별할 수 없다.

따라서 직접 주소 지정은 컴파일할 때 알려진 주소의 전역 변수에 액세스하는 데만 사용할 수 있다.

레지스터 주소 지정

직접 주소 지정과 개념은 같고 그 위치가 메모리 대신 레지스터라는 점만 다르다.

레지스터는 액세스가 빠르고 주소가 짧아 대부분의 컴퓨터에서 가장 일반적으로 사용하는 주소 지정 방식이다.

많은 프로세서 구조에서 레지스터 주소 지정 방식이 주로 사용된다.

레지스터 간접 주소 지정(register indirect addresing)

지정된 오퍼랜드는 메모리에서 가져오거나 메모리로 이동하는 기능은 같지만 직접 주소를 명령어에는 포함하지 않는다.

그 대신 메모리의 주소는 레지스터에 저장되어 있고, 이 주소를 포인터(Pointer)라고 한다.

레지스터 간접 주소 지정의 가장 큰 장점은 명령어에 전체 메모리 주소가 없어도 메모리를 참조할 수 있다.

변위 주소 지정

특정 레지스터에 저장된 주소에 변위(offset)을 더해 실제 오퍼랜드가 저장된 메모리 위치를 지정하는 방식

특정 레지스터가 무엇인지에 따라 여러 주소 지정 방식이 있을 수 있다.

인덱스 주소 지정

레지스터에 일정한 변위를 더해 메모리 주소를 참조하는 것

상대 주소 지정

인덱스 레지스터 대신에 PC레지스터가 사용되면 상대 주소 지정 방식이 된다.

즉, 현재 프로그램 코드가 실행되고 있는 위치에서 앞 또는 뒤로 일정한 변위만큼 떨어진 곳의 데이터를 지정하는 것이다.

베이스 주소 지정

인텔 프로세서에는 세그먼트 레지스터가 6가 있다. 이 중 하나를 베이스 레지스터로 하고 이 레지스터에 변위를 더해 실제 오퍼랜드가 있는 위치를 찾는 방식이다.

간접 주소 지정

메미로 참조가 두 번 이상 일어나는 경우

따라서 간접 주소 지정을 하면 데이터를 가져오는데 많은 시간이 걸린다.

프로세서와 주기억장치간의 속도 차가 많을 때 이 방법을 사용하면 오퍼랜드를 인출하는데 오랜 시간이 걸리므로 전체 프로그램의 수행 시간은 길어진다.

 

묵시적 주소 지정(implied addressing)

오퍼랜드의 소스나 목적지를 명시하지 않아도 암묵적으로 그 위치를 알 수 있는 주소 지정 방식이다.

명령어 뒤에 목적지 주소가 없지만 어디로 복귀할지 자동으로 알 수 있다.

반응형

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

컴퓨터구조: 제어 장치의 기능  (0) 2023.04.16
컴퓨터 구조: CISC와 RISC  (0) 2023.04.15
컴퓨터구조: 입출력 명령  (0) 2023.04.15
컴퓨터구조: 명령어  (1) 2023.04.15
컴퓨터구조: 레지스터  (0) 2023.04.15