컴퓨터 명령어

명령어(instruction): 컴퓨터가 수행해야 하는 일을 나타내는 비트들의 집합

디지털 컴퓨터의 구조: 명령어와 수행에 필요한 데이터가 주기억장치에 연속적으로 저장, 중앙처리장치가 하나씩 순차적으로 수행

 

명령어 = 0과 1의 비트들의 집합 (연산코드 필드 + 오퍼랜드 필드)

연산코드 필드: 처리해야 할 연산의 종류

오퍼랜드 필드: 처리할 정보 (=피연산자)

 

오퍼랜드는 오퍼랜드의 값이나 구할 수 있는 수단을 나타내야 하는데,

오퍼랜드를 기억시켜 놓는 곳은 주기억장치, 레지스터, 누산기, 스택

 

명령어의 형식은 오퍼랜드의 기억장소에 따라 분류하거나 오퍼랜드의 수에 따라 분류

 

 

기억장소에 따른 명령어 형식

  • 누산기(accumulator) 이용
    • 누산기는 중앙처리장치 내의 유일한 데이터 레지스터
    • 오퍼랜드 중의 하나가 누산기에 기억
    • 1-주소 명령어
  • 다중 레지스터 이용
    • 중앙처리장치 내에 여러 개의 레지스터
    • 2-주소 명령어 또는 3-주소 명령어
  • 스택 구조 이용
    • 연산에 필요한 오퍼랜드들을 기억장치 스택에 기억시키고 연산 결과도 스택에 기억시킨다
    • 0-주소 명령어 (명령에 필요한 2개의 오퍼랜드가 스택에 저장되어 있음)

 

오퍼랜드의 수에 따른 명령어 형식

- 오퍼랜드의 수가 많아질수록 비트가 많이 필요하고, 연산 속도가 빨라진다.

  • 3-주소 명령어 (연산코드 | 오퍼랜드 1 | 오퍼랜드 2 | 오퍼랜드 3)
    • 장점: 총 명령어 수가 줄어든다 (빠른 연산)
    • 단점: 비트 수가 많이 필요하다 (메모리 소모)
  • 2-주소 명령어 (연산코드 | 오퍼랜드 1 | 오퍼랜드 2)
    • 상업용 컴퓨터에서 가장 많이 사용된다
    • 3-주소 명령어에 비해 길이는 짧아지지만 명령어의 수가 증가
  • 1-주소 명령어 (연산코드 | 오퍼랜드 1)
    • 오퍼랜드를 가져오거나 연산 결과 저장 위한 장소로 누산기 레지스터 사용
    • 모든 연산은 누산기 레지스터와 기억장치에 저장된 오퍼랜드 대상으로 수행
  • 0-주소 명령어 (연산코드)
    • 산술연산 수행 시 레지스터와 기억장치주소 사용하지 않는다
    • 명령어의 길이가 짧아서 메모리 소모 적지만 비효율적

 


 

주소지정방식

 

프로그램 수행 시 오퍼랜드 지정 방식은 명령어 내의 주소지정방식이 결정

주소 필드가 조냊한다면 기억장치주소 혹은 레지스터 주소 나타냄

 

의미주소지정

  • 주소 필드가 필요하지 않음
  • 연산코드 필드에 지정된 묵시적인 의미의 오퍼랜드 지정
  • 명령어의 길이가 짧아지지만 명령어의 종류가 제한된다

 

즉치주소지정

  • 오퍼랜드를 명령어 자체 내에서 지정
  • 오퍼랜드 필드가 곧 데이터

 

직접주소지정

  • 명령어의 주소 필드에 직접 오퍼랜드의 주소 지정

 

레지스터 주소 지정

  • 오퍼랜드 필드에서 지정한 레지스터에 실제 피연산자 들어있음
  • 오퍼랜드에는 레지스터 번호가 저장되고 유효주소는 존재하지 않는다

 

레지스터 간접 주소 지정

  • 지정된 레지스터가 실제 오퍼랜드가 저장된 기억장치주소를 지정
  • 유효주소: 지정된 레지스터에 있는 주소

 


출처: 컴퓨터 구조 (김형근, 손진곤)