명령어의 구조

bebrain·2023년 5월 28일
0

컴퓨터구조

목록 보기
5/8
post-thumbnail

명령어의 구조

  1. 연산코드(=연산자) : 명령어가 수행할 연산
  2. 오퍼랜드(=피연산자) : 연산에 사용할 데이터 또는 사용할 데이터가 저장된 위치

1. 연산코드

연산코드유형 4가지(※ CPU마다 다름)

  1. 데이터 전송

  2. 산술/논리 연산

  1. 제어 흐름 변경
  1. 입출력 제어

2. 오퍼랜드

오퍼랜드가 담기는 영역을 오퍼랜드 필드라고 한다.

오퍼래느 필드에는 문자/숫자 등을 나타내는 데이터, 메모리나 레지스터주소가 올 수 있다.

다만 문자/숫자와 같이 연산에 사용할 데이터를 직접 명시하기보다는 연산에 사용할 데이터가 저장된 위치, 즉 메모리 주소레지스터 이름이 주로 담긴다. 이같은 이유로 주소필드라고 불리기도 한다.

0-주소 명령어 : 오퍼랜드가 하나도 없는 명령어
1-주소 명령어 : 오퍼랜드가 1개인 명령어
2-주소 명령어 : ~2개~
3-주소 명령어 : ~3개~
연산코드오퍼랜드

1-주소 명령어

연산코드오퍼랜드오퍼랜드

2-주소 명령어

연산코드오퍼랜드오퍼랜드오퍼랜드

3-주소 명령어

주소 지정 방식

: 오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터 위치를 찾는 방법(= 유효 주소를 찾는 방법)

※ 오퍼랜드 필드에 메모리나 레지스터의 주소를 담는 이유?
→ 명령어의 길이로 인해 오퍼랜드 필드로 표현할 수 있는 정보의 가짓수에 제한이 생기기 때문

명령어가 N비트, 연산 코드 필드가 n비트인 경우
오퍼랜드 필드가 가장 많은 공간을 할당할 수 있는 1-주소 명령어라 할지라도
오퍼랜드 필드의 길이는 연산 코드만큼의 길이를 뺀 N-n비트가 된다.

ex) 명령어 크기 = 16비트/ 연산코드 필드 = 4비트
→ 오퍼랜드 필드 크기 = 16 - 4 = 12비트
→ 표현가능한 정보의 가짓수 = 2^12개

하지만 오퍼랜드 필드에 메모리 주소를 담는다면 표현가능한 데이터 크기는
하나의 메모리 주소에 저장할 수 있는 공간만큼 커진다.


1. 즉시주소 지정 방식

연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식.

  • 단점 - 표현할 수 있는 데이터의 크기가 작다
  • 장점 - 빠르다

2. 직접주소 지정 방식

오퍼랜드 필드에 유효주소를 직접 명시하는 방식.

  • 장점 - 즉시주소 지정 방식보다 표현가능한 데이터의 크기가 크다
  • 단점 - 하지만 여전히 오퍼랜드 필드의 길이가 연산코드 길이만큼 짧아져 제한이 있다

※ 유효주소 : 연산에 사용할 데이터가 저장된 위치

3. 간접주소 지정 방식

오퍼랜드 필드에 유효주소의 주소를 명시하는 방식.

  • 장점 - 직접주소 지정 방식보다 표현가능한 데이터의 크기가 크다
  • 단점 - 메모리에 접근하는 과정이 두 번으로 늘어나 속도가 느리다

연산에 사용할 데이터가 메모리가 아닌 레지스터에 저장된 경우

4. 레지스터 주소 지정 방식

연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시하는 방식.(≒직접 주소 지정 방식)

  • 빠르다(CPU 내부 레지스터에 접근 > CPU 외부 메모리에 접근)
  • 표현가능한 레지스터 크기에 제한이 있다

5. 레지스터 간접주소 지정 방식

연산에 사용할 데이터를 메모리에 저장하고, 그 주소(유효주소)를 레지스터에 저장하고, 그 레지스터를 다시 오퍼랜드 필드에 명시하는 방식.(≒간접 주소 지정 방식)

  • 메모리 접근 횟수가 1번으로 간접주소 방식보다 빠르다

0개의 댓글