CS/컴퓨터구조

[컴퓨터구조] 명령어의 주소 지정 방식

happy_life 2022. 10. 12. 18:11

명령어의 피연산자필드를 사용해, 데이터 유효주소를 결정하는 방식입니다.

0단계 주소지정방식

 유효주소를 확정하기 위해 연산을 0번 수행합니다.

 

1) 즉시 주소지정 방식

명령어 피연산자 필드에 실제 데이터가 포함됩니다. 명령어 decode 시에 사용할 데이터가 바로 인출됩니다. 보통 프로그램의 초기 환경값을 세팅할 때 자주 사용됩니다.

장점: 레지스터 액세스조차 없이 수행됩니다.

단점: 피연산자에 해당하는 bit수로 표현할 수 있는 데이터만 제한적으로 사용 가능합니다.

즉시 주소 지정 방식

 

2) 묵시적 주소지정 방식

명령어 실행에 필요한 데이터의 위치가 묵시적으로 지정됩니다. 스택이나 누산기처럼 저장할 위치가 이미 저장되어있는 경우에 해당합니다.

장점: 명령어의 길이가 짧고, cpu 내에서 연산이 수행됩니다.

단점: 컴퓨터 구조나 명령어에 따라 제한적으로 사용됩니다.

묵시적 주소지정 방식

 

 

 

1단계 주소지정방식

유효주소를 확정하기 위해 연산을 1번 수행합니다.

 

1) 레지스터 직접 주소지정 방식

데이터가 한 레지스터에 저장되어 있고 피연산자가 해당 레지스터의 주소를 포함합니다. 주소 지정에 사용될 수 있는 레지스터들의 수는 2^p(피연산자 필드의 bit)입니다.

장점: 데이터 접근을 위한 메모리 액세스가 없고, 피연산자 필드의 bit수가 적어도 무방합니다.

단점: 데이터 저장공간이 cpu 내 레지스터로 제한됩니다.

레지스터 직접 주소 지정 방식

 

2) 직접 주소지정 방식

데이터는 메모리에 저장되어 있고 명령어 피연산자가 해당 메모리 주소를 포함하는 것입니다.

장점: 데이터 접근을 위해 한번의 메모리 액세스만 발생합니다.

단점: 연산 코드를 제외하고 남은 bit로 메모리 주소 bit를 사용가능하므로 저장할 기억장소의 수가 제한됩니다.

직접 주소 지정 방식

 

 

 

2단계 주소지정방식

유효주소를 확정하기 위해 연산을 2번 수행합니다.

 

1) 레지스터 간접 주소지정 방식

명령어 피연산자 필드가 가리키는 레지스터의 내용을 유효 주소로 사용합니다.

먼저 피연산자 필드에 명시된 레지스터를 읽습니다. 이후 해당 레지스터의 내용이 가리키는 주소를 사용하여 메모리에 접근합니다.

레지스터 간접 주소 지정 방식

 

2) 메모리 간접 주소지정 방식

명령어 피연산자 필드가 가리키는 메모리의 내용을 유효 주소로 사용합니다. 피연산자 필드에 명시된 메모리 주소를 읽으면, 해당 메모리 주소로 가서 그 메모리 주소에서 가리키는 데이터를 참조합니다.

메모리 간접 주소 지정 방식

 

 

3) 변위 주소지정 방식

명령어 내 2개의 피연산자 필드를 사용하거나 1개의 레지스터를 추가로 사용하여 유효 주소를 확정합니다.

 

1. 베이스-레지스터 주소지정 방식

피연산자 필드 중 하나는 메모리 주소를 갖고 있는 레지스터 주소를 포함합니다. 또 다른 피연산자 필드는 오프셋 값으로 사용할 메모리 주소를 포함합니다.

베이스 레지스터 주소 지정 방식

 

 

2. PC 상대 주소지정 방식

PC 레지스터에 메모리 주소를 포함합니다.(묵시적) 묵시적이기 때문에 유일한 피연산자 필드는 오프셋 값입니다.

 

명령어의 피연산자필드를 사용해, 데이터 유효주소를 결정하는 방식입니다.

PC 상대 주소 지정 방식