(피연산자 주소 지정 방식)
주소 지정 방식(addressing mode) 이란 사용될 피연산자의 위치를
지정하는 방법을 말한다.
- 묵시적(implied)
- 즉시적(immediate)
- 직접(direct)
- 간접(indirect)
- 레지스터(register)
- 레지스터 간접(register indirect)
- 계산에 의한 방식(displacement)
등의 주소 지정 방식이 있다.
(묵시적 주소 지정 방식)
0-주소 명령 형식 에서와 같이 피연산자 없이
묵시적으로 지정된 주소 를 사용하는 방식. (스택 머신(stack machine)이 대표적인 예)
(즉시적 주소 지정 방식)
피연산자 지시자(operand specifier) 의 값이 피연산자가 된다.
ex) ADD AC, 5
명령어에 피연산자가 포함되어 있어, 실행속도가 빠르다.
그러나 명령어의 길이에 영향을 받아 데이터 크기에 제한이 있다.
(직접 주소 지정 방식)
피연산자 지시자 의 값이 피연산자의 주소를 의미한다.
ex) ADD AC, address(operand)
따라서, 한번의 메인 메모리 접근이 필요하다.
메인 메모리가 2^n 워드 라면 주소의 비트가 n비트여야
모든 메모리에 접근할 수 있다.
따라서 피연산자는 n비트 여야 모든 메모리에 접근할 수 있다.
(간접 주소 지정 방식)
피연산자 지시자 가 피연산자의 주소값을 가지는 곳의 주소를 가진다.
즉, 피연산자를 가르키는 주소의 주소를 의미한다.
ex) ADD AC, address(address(operand))
직접 주소 지정 방식의 단점을 보안한 방법이다.
그러나 2번의 메인 메모리 접근이 필요해서 상대적으로 속도가 느리다.
(레지스터 주소 지정 방식)
피연산자 지시자 가 레지스터 번호를 나타내는 방식이다.
ex) ADD AC, register
명령어에서 주소 필드가 작아도 되고, 메인 메모리 접근이 없어서 속도가 매우 빠르다.
그러나, 레지스터 개수에 제한이 있다.
(레지스터 간접 주소 지정 방식)
피연산자 지시자 가 레지스터 번호를 나태내고
레지스터가 메모리의 주소값을 가지는 방식이다.
ex) ADD AC, register(address)
넓은 메인 메모리 주소 공간을 가지면서도 한번의 메모리 접근만
하기 때문에 속도가 빠르다는 장점이 있다.
(변위 주소 지정 방식)
위의 사진과 같이
어떤 주소를 기준으로 주소를 매기는 방식이다.
operand 로 기준값(R) 과 변위값(A) 을 같이 사용한다.
- 상대 주소 지정 방식(relative addressing mode) : 기준 주소로 PC 레지스터의 값을 이용한다.
- 인덱스 주소 지정 방식(indexed addressing mode) : 기준 주소로 Index register 값을 이용한다.
- 베이스 레지스터 주소 지정 방식(base register addressing mode) : 기준 주소로 Base register 값을 이용한다.
'컴퓨터 > 프로그래밍 관점에서 바라보는 컴퓨터구조' 카테고리의 다른 글
책 읽기 끝 (0) | 2021.08.12 |
---|---|
명령어 집합 (2) (0) | 2021.08.12 |
명령어 집합 (0) | 2021.08.11 |
기계어와 어셈블리 언어 (4) (0) | 2021.08.11 |
기계어와 어셈블리 언어 (3) (0) | 2021.08.09 |