<어드레스 모드>
: 피연산자의 지정되는 방법은 어드레스 모드에 의해 결정된다.
① implied모드 : 피연산자가 명령어의 정의에 의해 묵시적으로 결정되버리는 것을 말한다. 대표적인 예로 AC를 보수를 취하라, 스택에서 TOP을 이용한 연산들로 이미 피연산자가 지정되어 있다.
② immediate모드 : 명령어에 주소필드 그 자체가 연산자가 되는 경우로 레지스터에 초기 값을 줄 때 사용된다.
③ 레지스터모드 : 명령어의 주소필드가 메모리를 가리키는 것이 아니라 피연산자가 있는 레지스터를 지정하는 것을 말한다.(즉, 메모리의 직접주소와 유사한 수행을 한다.)
④ 레지스터간접모드 : 명령어의 주소필드가 피연산자의 위치를 가리키는 레지스터를 지정하는 것을 말한다.(즉, 메모리의 간접주소와 유사하므로 레지스터를 2번 참조하게 된다.)
⑤ 자동증가/자동감소 모드 : 레지스터 간접모드로 메모리를 접근할 때마다 메모리의 값이 자동으로 1씩 증가/감소한다.
(자동증가는 실행된 후에 1증가하고 자동감소는 실행전에 1감소한다.)
⑥ 직접 주소 모드 : 명령어의 주소필드가 그대로 유효주소이다.
⑦ 간접 주소 모드 : 명령어의 주소필드가 유효주소가 담긴 위치를 가진다.
⑧ 상대 주소 모드 : 프로그램 카운터 + 주소필드의 값으로 유효주소가 결정된다.
⑨ 인덱스드 어드레싱 모드 : 별도의 인덱스 레지스터가 존재하며 이는 명령어 주소 부분에 대한 상대적인 위치를 가지고 명령어의 주소필드는 단지 데이터배열의 시작주소만 나타내어 이 두 값이 더해져 유효주소가 결정된다.
⑩ 베이스 레지스터 어드레싱 모드 : 별도의 베이스 레지스터는 베이스 주소를 가지고 있으며 명령어의 주소필드는 베이스 주소에 대한 상대적인 위치를 나타낸다.
|
C I S C |
R I S C |
|
* 많은 수의 명령어 * 가변길이 명령어 * 다양한 어드레스 모드 * 메모리의 피연산자를 직접처리 * 마이크로 프로그램된 제어 |
* 적은 수의 명령어 * 고정길이 명령어 * 적은 수의 어드레스 모드 * 메모리 참조는 LOAD, STORE으로 제한 * 하드와이어된 제어 * 파이프라인으로 실행단계 중첩 |
※ 중첩된 레지스터 윈도우
* 윈도우의 크기 = L+2C+G
(G : 전역 레지스터의 수, L : 지역 레지스터의 수, C : 두 윈도우간의 레지스터의 수)
* 전체 레지스터의 수 = (L+C)W + G (W : 윈도우의 수)

