명령어의 형식

2006. 5. 13. 17:03컴퓨터 이야기

보충 글 출처 :  http://100.naver.com/100.nhn?docid=717660

                http://krdic.naver.com/krdic.php?docid=77368

 

명령어: 컴퓨터에게 일을 시키기 위하여 컴퓨터가 알아들을 수 있는 기계어로 된 명령적인 글

처음등장한 것은  미국 '시애틀 컴퓨터' 사의 프로그래머였던 팀 패터슨(Tim Paterson, 1956 ~ )이 제안, 개발한 것

 

명령어의 기능별 분류

 

  • 함수연산 기능 : 산술적 연산과 논리적인 연산을 수행하는 기능
  • 전달 기능 : 레지스터와 레지스터 사이 또는 중앙처리장치와 주기억장치로 사이에 정보를 전달하는 기능
  • 제어 기능 : 명령어를 수행순서를 제어하는 기능
  • 입출력 기능 : 주기억 장치와 입출력 장치 사이에 정보를 전달하는 기능

 

일반적인 명령어 :

 

1. 연산자 : 명령어를 기호화한 것  

2. 피연산자 : 연산자 처리할 데이터 또는  데이터가 기억되어있는 데이터가 기억되어있는 주소

 

n-1   0
연산자 피연산자1 피연산자2

 

▲ 명령어의 형식

 

 

참고 시항 : 대다수 컴퓨터에서 공통적으로 사용되는 명령 부류

 

자료 이동 명령(data movement):

  • 레지스터와 레지스터 간, 레지스터와 기억장치, 기억장치 상호 간에 자료를 옮긴다.
  • 일반적으로 이동(move) 명령을 쓰지만 레지스터에 옮기는 로드(load)와 기억장치에 옮기는 저장(store) 명령을 구별하는 컴퓨터도 있다.

 

산술 및 논리연산(arithmetic and logic operation): 가감승제의 사칙연산과 'AND', 'OR', 'NOT', 'XOR' 등의 논리연산, 그리고 시프트(shift)와 로테이트(rotate) 명령이 있다.


비교 및 검사(compare and test):

 

  • 두 값을 비교하여 플래그를 변화시키거나, 0인지 검사하는 명령이 있다.
  • 조건 분기 명령과 함께 쓰인다.
  • 워드의 특정 비트만 검사할 수 있는 컴퓨터도 있다.

 

분기(branch, jump):

 

  • 조건부 분기(conditional branch)와 무조건 분기(unconditional branch)로 대구분
  • 조건부 분기는 산술 및 논리연산이나 비교 명령에 의해 결정된 상태 플래그에 따라 분기를 수행
  • 무조건 분기는 지정된 주소로 바로 제어를 옮긴다.

 

 

 

서브루틴 호출과 복귀(subroutine call and return):

 

  • 서브루틴을 호출하거나 주 프로그램으로 돌아온다.
  • 스택(stack:자료구조의 하나)에 복귀 주소가 저장된다.

 

입출력(input/output): 입출력 포트에 데이터를 읽거나 쓴다.

 

기억장치 대응 입출력(memory mapped I/O) 방식을 채택한 컴퓨터는 따로 입출력 명령이 없고 기억장치의 특정 주소를 읽는 것이 입출력이 된다.

 

CPU 상태 조절: CPU의 상태를 사용자 상태(User State)와 슈퍼바이저 상태(supervisor state)로 변환하고, 컴퓨터의 작동을 잠시 정지하기도 한다.

 

1.  피연산자가 어떤 기억장소에 저장하였는가 따라서 명령어 형식 분류

  • 스택 명령어(Stack Instruction)형식 : 피연산자가 스택에 저장되어 있으며 명령어 실행 후 결과 값 자체를 스택에 저장
  • 누산기 명령어 (Acccumulator Instruction) 형식 : 연산에 필요한 하나의 피연산자가 누산기에 저장되어 있으며 결과 값도 누산기에 저장
  • 레지스터 - 레지스터 명령어(Register - Register Instruction) 형식  : 두 개의 피연산자가 각 중앙처리 내에 있는 레지스터에 저장 
  • 레지스터 - 메모리 명령어 (Register - Memory Instruction) 형식 : 두 개의 피연산자중 하나는 레지스터에 나머지는 주기억장치에
  • 메모리 - 메모리 명령어(Memory - Memory Instruction)형식 : 두 개의 피연산자가 모두 주기억장치에 저장되어 있다.

2. 피연산자의 수에 따른 명령어 분류

 

1. 0-주소 형식 : 명령어 형식이 연산자만 구성 스택 명령어 형식이 속함

 

 

 

n-1            0
연산자

 

▲ 0-주소 형식

 

2.  1-주소 형식 : 명령어 형식이 연산자와 피연산자가 하나로 구성, 누산기 명령어가 속함

 

 

 

n-1       0
연산자 피연산자

 

▲ 1-주소 형식

 

3.  2-주소 형식 : 명령어 형식이 하나의 연산자와 두개의 피연산자로 구성, 레지스터와 레지스터, 레지스터-메모리, 메모리-메모리 명령어 형식이 속함

 

 

 

n-1         0
연산자 피연산자1 피연산자2

 

▲ 2-주소 형식

 

4. 3-주소 형식 : 명령어 형식이 하나의 연산자와 3개의 피연산자 부분으로 구성, 마지막 피연산자 부분은 결과 값으로 저장하기 위한 주소로 갖고 있다.

 

 

n-1           0
연산자 피연산자1 피연산자2 피연산자3

 

▲ 3-주소 형식

5. n+1 주소 형식  :

 

  • 기본적인 주소형식에 피연산가 하나 더 있는 명령어 형식
  • 추가 부분은 다음에 수행 할 명령어 주소 를 가지고 있다. 그렇지만 이러한 주소 형식을 갖는  컴퓨터 체계는 퍼스널 컴퓨터(PC)가 필요 없다.

 

 

n+1             0
연산자 피연산자1 피연산자2 피연산자3 피연산자4

 

↑ n+1주소 형식

 

*. 스택 : 컴퓨터 데이터 액세스 형태 가지. 나중 입력 정보부터 출력거나 삭제 액세스 형태 반대어 (queue).    

320x100

'컴퓨터 이야기' 카테고리의 다른 글

버스  (0) 2006.06.11
컴퓨터의 설계 때 시스템 구조  (0) 2006.06.11
연산 장치  (0) 2006.05.07
중앙처리장치- 1. 제어장치  (0) 2006.04.30
중앙 처리 장치 정의  (0) 2006.04.15