명령어 형식

2015.08.15 17:48

명령어는 크게 OP-Code부(명령부)와 Operand부(자료부)로 구성되는데 Operand부의 개수에 따라 다음의 네 가지 명령어 형식이 있다.


 3주소 명령어(3 Address Instruction)

 2주소 명령어(2 Address Instruction)

◈ 1주소 명령어(1 Address Instruction)

◈ 0주소 명령어(0 Address Instruction)



<3주소 명령어>


3주소 명령어는 Operand부가 세 개로 구성되는 명령어 형식으로 여러 개의 범용 레지스터(GPR)를 가진 컴퓨터에서 사용한다.

◈ 연산의 결과는 주로 Operand 1에 기록된다.


Op-Code

Operand 1

Operand 2

Operand 3

 

자료 1의 주소

자료 2의 주소

자료 3의 주소

◈ 장점

  • 연산 시 원래의 자료를 파괴하지 않는다.
  • 다른 형식의 명령어를 이용하는 것보다 프로그램 전체의 길이를 짧게 할 수 있다.
  • 전체 프로그램 실행 시 명령 인출을 위하여 주기억장치를 접근하는 횟수가 줄어든다.

◈ 단점

  • 명령어 한 개의 길이가 너무 길어진다.
  • 하나의 명령을 수행하기 위해서 최소한 4번 기억장소에 접근해야 하므로 수행시간이 길어진다.



<2주소 명령어>


◈ 2주소 명령어는 Operand부가 두 개로 구성되는, 가장 일반적으로 사용되는 명령어 형식이다.


Op-Code

Operand 1

Operand 2

 

자료 1의 주소

결과의 주소

자료 2의 주소


◈ 여러 개의 범용 레지스터를 가진 컴퓨터에서 사용한다.

◈ 장점

  • 실행 속도가 빠르고 기억 장소를 많이 차지하지 않는다.
  • 3주소 명령에 비해 명령어의 길이가 짧다.
  • 계산 결과가 기억장치에 기억되고 중앙처리장치에도 남아 있어서 계산 결과를 시험할 필요가 있을 때 시간이 절약된다.

◈ 단점

  • 연산의 결과는 주로 Operand 1에 저장되므로 Operand 1에 있던 원래의 자료가 파괴된다.
  • 전체 프로그램의 길이가 길어진다.


<1주소 명령어>

◈ 1주소 명령어는 Operand부가 한 개로 구성되어 있다.


Op-Code

Operand 1

 

자료 1의 주소

◈ 1주소 명령어 형식의 컴퓨터는 누산기(AC, Accumulator)를 이용하여 명령어를 처리하므로 결과도 누산기에 저장된다.



<0주소 명령어>


0주소 명령어는 자료의 주소를 지정하는 Operand(TOP)부 없이 OP-Code부만으로 구성되어 있다.


Op-Code


◈ 모든 연산은 Stack 메모리의 Stack Pointer(TOP)가 가리키는 Operand를 이용하여 수행한다.

 0주소 명령어의 모든 연산은 스택에 있는 자료를 이용하여 수행하기 때문에 스택 머신(Stack Machine)이라고도 한다.

◈ 스택에 기억된 데이터만을 이용하여 연산하므로 인스트럭션 수행시간이 짧다.

◈ 피연산자를 나타내지 않기 대문에 인스트럭션의 길이가 짧아서 기억공간의 이용이 효율적이다.

◈ 스택을 사용한 컴퓨터에서 수식을 계산하기 위해서는 우선 수식을 Postfix(역 Polish) 형태로 변경해야 한다.

 0주소 명령어는 주소의 사용 없이 스택에 연산자와 피연산자를 넣었다 꺼내어 연산한 후 결과를 다시 스택에 넣으면서 연산하기 대문에 원래의 자료가 남지 않는다.

저작자 표시
신고

'Lecture > 전자계산기' 카테고리의 다른 글

입출력 제어 방식  (0) 2015.08.15
마이크로 오퍼레이션(Micro Operation)  (0) 2015.08.15
주소지정방식(Addressing Mode)  (0) 2015.08.15
명령어 형식  (0) 2015.08.15
명령어(Instruction)  (0) 2015.08.15
중앙처리장치  (0) 2015.08.15

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

다른 카테고리의 글 목록

Lecture/전자계산기 카테고리의 포스트를 톺아봅니다