컴퓨터 시스템 별도의 어드레싱 모드
오늘은 다양한 어드레싱 모드를 하나씩 살펴보겠습니다. 모드 필드는 피연산자의 위치를 식별하는 방식을 결정하며, 주소 필드는 없을 수도 있고 여러 개를 가질 수도 있는데 이 경우에 각 주소 필드는 독자적인 어드레싱 모드를 가지고서 표현됩니다.
이 중에서 주소 필드를 가지지 않는 내장 (implied) 모드와 즉석 (immediate) 모드 외에는 모두 주 소를 얻기 위하여 주소 필드를 수정해야 하는 것들입니다.
1. implied 모드
이 모드에서는 피연산자가 묵시적으로 명령어의 정의에 따라 정해져 있습니다. 예를 들어 "누산기의 보수를 취하라"는 명령어는 이 명령어의 정의에 따라 피 연산자가 누산기에 있기 때문에 implied 모드가 됩니다. 사실상 누산기를 사용하 는 모든 명령어는 implied 모드 명령어입니다. 스택 구조의 컴퓨터에서 무주소 명 령어는 피연산자가 스택의 top이기 때문에 implied 모드 명령어입니다.
2. immediate 모드
이 모드에서는 피연산자가 명령어 그 자체내에 있습니다. 즉 이런 명령어에서는 주소 필드라기보다도 피연산자 필드를 가지게 됩니다. 피연산자 필드는 실제의 피연산자를 가집니다. immediate 모드 명령어는 상수를 레지스터에 초기값으로 줄 때 편리하다. 이전에 명령어의 주소 필드는 메모리의 주소나 레지스터를 지정한다고 언급 한 적이 있다. 주소 필드가 레지스터를 지정할 때에는 레지스터 모드라고 한다.
3. 레지스터 모드
레지스터 모드 (register mode) 에서는 CPU내의 레지스터에 피연산자가 있습니다. 명령어의 레지스터 필드에서 어떤 특별한 레지스터를 선택합니다. k비트의 필드 는 2k개의 레지스터 중에 하나를 선택할 수가 있습니다.
4. 레지스터 간접 모드
레지스터 간접 모드 (register indirect mode) 에서는 명령어가 피연산자의 주소 를 가지고 있는 레지스터를 지정합니다. 즉 선택된 레지스터는 피연산자 그 자체가 아니라 피연산자의 주소입니다. 레지스터 간접 모드를 사용할 때에, 프로그래머는 이전의 명령어에서 레지스터가 피연산자의 주소를 가졌는지를 확인해 보아야 합니다. 이 모드의 장점은 직접 메모리의 주소를 지정하는 것보다 적은 비 트가 든다는 것입니다.