YZ ZONE

[ 컴퓨터구조 ]2.4.2 명령어 세트 본문

IT/컴퓨터구조

[ 컴퓨터구조 ]2.4.2 명령어 세트

러블리YZ 2023. 2. 5. 14:33

[ 주소지정 방식(addressing mode) ]

▣ 단점
 명령어의 길이가 증가한다
 명령어 해독 과정이 복잡해지고, 실행 시간이 길어진다

 주소지정 방식

 명령어 실행에 필요한 오퍼랜드의 주소를 결정하는 방식

다양한 주소지정 방식을 사용하는 이유 : 제한된 수의 명령어 비트들 을 이용하여, 사용자(프로그래머)가 여러 가지 방법으로 오퍼랜드의 주소를 결정하도록 해주며, 더 큰 용량의 기억장치를 사용할 수 있도 록 하기 위함

 명령어 내 오퍼랜드 필드의 내용
기억장치 주소 : 데이터가 저장된 기억장치의 위치를 지정 

레지스터 번호 : 데이터가 저장된 레지스터를 지정 

데이터 : 명령어의 오퍼랜드 필드에 데이터가 포함

 기호
 EA : 유효 주소(Effective Address), 데이터가 저장된 기억장치의 실제 주소

A :명령어내의주소필드내용(오퍼랜드필드의내용이기억장치 주소인 경우)

R : 명령어 내의 레지스터 번호 (오퍼랜드 필드의 내용이 레지스터 번호인 경우)

(A) : 기억장치 A번지의내용 

(R):레지스터 R의내용

 주소지정 방식의 종류
1) 직접 주소지정 방식(direct addressing mode)
2) 
간접 주소지정 방식(indirect addressing mode)
3) 
묵시적 주소지정 방식(implied addressing mode)
4) 
즉시 주소지정 방식(immediate addressing mode)
5) 
레지스터 주소지정 방식(register addressing mode)
6) 
레지스터 간접 주소지정 방식(register-indirect addressing mode) 7) 변위 주소지정 방식(displacement addressing mode)

7-1) 상대 주소지정 방식(relative addressing mode)
7-2) 
인덱스 주소지정 방식(indexed addressing mode)
7-3) 
베이스-레지스터 주소지정 방식(base-register addressing mode)

 

 

1) 직접 주소지정 방식(direct addressing mode)

 오퍼랜드 필드의 내용이 유효 주소(EA)가 되는 방식 EA = A

 장점 : 데이터 인출을 위하여 한 번의 기억장치 액세스만 필요
 단점 : 연산 코드를 제외하고 남은 비트들만 주소 비트로 사용될 수 있기 때문에 직접 지정할 수 있는 기억장소의 수가 제한

2) 간접 주소지정 방식(indirect addressing mode)

 오퍼랜드 필드에 기억장치 주소가 저장되어 있지만, 그 주소가 가리 키는 기억 장소에 데이터의 유효 주소를 저장해두는 방식

EA = (A)

 

 장점 : 최대 기억장치용량이 단어의 길이에 의하여 결정 주소지정 가능한 기억장치 용량 확장

단어 길이가 n비트라면,최대2n 개의 기억 장소에 대한 주소지정이 가능

 단점 : 실행 사이클 동안에 두 번의 기억장치 액세스가 필요
첫 번째 액세스: 주소 인출
두 번째 액세스: 그 주소가 지정하는 기억 장소로부터 실제 데이터 인출

 

 명령어 형식에 간접비트(I) 필요

만약 I = 0 이면, 직접 주소지정 방식

만약I=1이면,간접주소지정방식 간접사이클실행

 

 

 다단계(multi-level) 간접 주소지정 방식 

EA = ( ( . . (A) . . ) )

3) 묵시적 주소지정 방식(implied addressing mode) 

 명령어 실행에 필요한 데이터의 위치가 묵시적으로 지정되는 방식 (위치 지정이 필요하지 않음)

[]
‘SHL’ 명령어 : 누산기의 내용을 좌측으로 시프트(shift)

‘PUSH R1 명령어 : 레지스터 R1의 내용을 스택에 저장
(SP가 가리키는 기억 장소에 R1의 내용을 저장한다는 것이 묵시적으로 정해져 있음)

 장점 : 명령어 길이가 짧다 

 단점 : 종류가 제한된다

4) 즉시 주소지정 방식(immediate addressing mode)

 데이터가 명령어에 포함되어 있는 방식. , 오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터

  • ▪  용도: 프로그램에서 레지스터나 변수의 초기 값을 어떤 상수 (constant value)으로 세트 하는 데 사용
  • ▪  장점 : 데이터를 인출하기 위하여 기억장치를 액세스할 필요가 없음
  • ▪  단점 : 상수값의 크기가 오퍼랜드 필드의 비트 수에 의해 제한됨
  •  

5) 레지스터 주소지정 방식

 연산에 사용될 데이터가 내부 레지스터에 저장되어 있는 경우로서, 명령어의 오퍼랜드가 해당 레지스터를 가리키는 방식

EA = R

주소지정에사용될수있는레지스터들의수= 2k 
(, k R 필드의 비트 수)

장점
오퍼랜드 필드의 비트 수가 적어도 된다
데이터 인출을 위하여 기억장치 액세스가 필요 없다

단점
데이터가 저장될 수 있는 공간이 CPU 내부 레지스터들로

제한

6) 레지스터 주소지정 방식

 오퍼랜드 필드(레지스터 번호)가 가리키는 레지스터의 내용을 유효 주소로 사용하여 실제 데이터를 인출하는 방식

EA = (R)

 장점 : 주소지정 할 수 있는 기억장치 영역이 확장 

레지스터의 길이 = 16 비트라면, 주소지정 영역216 = 64 Kword

레지스터의 길이 = 32 비트라면, 주소지정 영역: 232 = 4 Gword

 
 

7) 변위 주소지정 방식

 직접 주소지정과 레지스터 간접 주소지정 방식의 조합 

EA = A + (R)

 

 사용되는 레지스터에 따라 다양한 변위 주소지정 방식 가능

PC상대 주소지정 방식(relative addressing mode)

인덱스 레지스터인덱스 주소지정 방식(indexed addressing mode)

베이스 레지스터베이스-레지스터 주소지정 방식(base- register addressing mode)