오늘은 컴퓨터의 어드레싱 모드를 알아보겠습니다. 이를 위해서는 컴퓨터 제어장치의 명령어 사이클이 핵심적인 작용을 하는데, 명령어 사이클에 대해서도 간략하게 알아보겠습니다.
1. 어드레싱 모드란?
명령어에서 연산 필드는 수행되어야 하는 연산을 지정하고 있습니다. 이 연산은 레지스터나 메모리에 있는 데이타에 대해 수행됩니다. 프로그램이 수행되는 동안 피연산자가 지정되는 방법은 명령어의 어드레싱 모드에 의해 좌우됩니다. 어드레싱 모드는 실제의 피연산자를 정하기 위해 명령어 속에 있는 주소 필드의 값을 수정하거나 다른 것으로 대체하는 것들을 규정합니다. 컴퓨터는 다음 두 가지 조 항 중 하나 또는 둘다를 도모하기 위해 어드레싱 모드 기법을 사용합니다.
1. 포인터, 카운터 인덱싱 (indexing), 프로그램 리로케이션 (relocation) 등의 편 의를 사용자에게 제공함으로써 프로그래밍하는 데 융통성을 준다.
2. 명령어의 주소 필드의 비트를 줄인다.
여러 가지의 어드레싱(주소 지정) 기법을 사용함으로써, 숙련된 프로그래머는 명령어의 수나 수행 시간에 비해 훨씬 효율적인 프로그램을 잘 수도 있습니다.
2. 컴퓨터 제어장치 명령어 사이클
다양한 어드레싱 모드를 이해하기 위해서는 컴퓨터의 기본적인 동작 사이클 을 알아야 하는데, 컴퓨터의 제어 장치는 다음과 같은 세 단계를 가지는 명령어 사이클을 가지도록 설계합니다.
- 메모리로부터 명령의 fetch
- 명령의 디코딩
- 명령의 실행
컴퓨터에는 프로그램 카운터 (PC) 라고 불리는 레지스터가 있어서 프로그램 안의 명령어들을 순차적으로 실행하게 합니다. 즉 PC는 항상 다음에 실행될 명령 어의 주소를 저장하고 있으며, 매 fetch 때마다 그 값이 하나씩 증가합니다.
두번째 디코딩 단계에서는 명령어에 의해 수행되어야 할 연산의 종류, 어드레싱 모드, 피연산자의 위치 등을 알아내고, 세번째 단계에서 명령이 실행된 후 제어는 다시 다음 명령을 fetch 하기 위한 첫 단계로 돌갑니간다. 명령어에서의 어드레싱 모드는 연산 코드와는 별도의 이진 코드를 통해서 나 타내기도 하고 연산 코드와 함께 하나의 이진 코드로 나타내기도 합니다. 그리고 하나의 명령어에 두 개 이상의 어드레싱 모드를 포함할 수도 있습니다.
3. 별도의 어드레싱 모드 필드
별도의 어드레싱 모드 필드를 가진 명령어 형식을 나타내고 있습니다. 여기서 모드 필드는 피연산자의 위치를 식별하는 방식을 결정하며, 주소 필드는 없을 수도 있고 여러 개를 가질 수도 있는데 이 경우에 각 주소 필드는 독자적인 어드레 영식 싱 모드를 가지고서 표현됩니다.
댓글